aboutsummaryrefslogtreecommitdiffstats
path: root/src/nodejs/main.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/nodejs/main.js')
-rw-r--r--src/nodejs/main.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/nodejs/main.js b/src/nodejs/main.js
index 4411081..1c01b78 100644
--- a/src/nodejs/main.js
+++ b/src/nodejs/main.js
@@ -80,6 +80,70 @@ function rowToWay(row){
// #################### MAY be put to different module later
+
+// #################### my little clutch replacments
+
+
+var urlToXpathObj = function urlToXpathObj(url){
+
+ // FIXME: more validaiton
+ // filter stars in keys
+ // filter no enough arguments
+
+ var parseKeyList = function(string){
+ result = /(.+)(:?\|(.+))/.exec(string);
+ result.shift();
+ return result;
+ }
+
+ var parseBboxList = function(string){
+
+ result = /(.+)(:?,(.+)){3}/.exec(string):
+
+ if(result.length != 4){
+ throw "error";
+ }
+
+ result.shift();
+
+ return {
+ 'left' : result[0];
+ 'bottom' : result[1];
+ 'right' : result[2];
+ 'top' : result[3];
+ }
+
+ var xp = {};
+
+ result = /\/(*|node|way|relation)(:?\[(.*)=(.*)\])*/.exec(url);
+
+ xp.object=result[1];
+
+ for(i=2;i<=result.length();i++){
+ if(result[i]==="bbox"){
+ xp.bbox = parseBboxValues(result[i+1]);
+ } else {
+ xp.tag ={};
+ xp.tag.keys = parseKeyList(result[i]);
+ xp.tag.values = parseKeyList(result[i+1]);
+ }
+ i++;
+ }
+}
+
+
+
+
+
+
+
+// ################## end my little clutch replacments
+
+
+
+
+
+
var options = [
{ short : 'c',
long : 'config',