Javascript 无需通过循环搜索即可高效查询附近位置
我有一个JSON数据库->Javascript 无需通过循环搜索即可高效查询附近位置,javascript,json,regex,get,Javascript,Json,Regex,Get,我有一个JSON数据库-> "cities_&_stops_lat_&_lng": { "24.5854":{ "73.7125":"PLACE 1" }, "24.5926":{ "72.7156":"PLACE 2" }, "25.2138":{ "75.8648":"PLACE 3" }, "
"cities_&_stops_lat_&_lng": {
"24.5854":{
"73.7125":"PLACE 1"
},
"24.5926":{
"72.7156":"PLACE 2"
},
"25.2138":{
"75.8648":"PLACE 3"
},
"26.4499":{
"74.6399":"PLACE 4"
},
"28.612912":{
"77.227321":"PLACE 5"
},
"26.9124":{
"75.7873":"PLACE 6"
}
}
假设我的当前位置是curr\u lat=28.2190,curr\u lng=77.6789
我想查询附近的位置,而不必循环通过,也不必查找彼此之间的距离
相反,我想查询一下,比如说在10km范围内,大约1lat,或者1lng=100km(实际上是111km)
因此,10公里=0.1
因此,我将限制我的查询介于-
curr\u lat-0.1
至curr\u lng+0.1
即=>28.1190
至28.3190
Sim卡,curr\u lng-0.1
至curr\u lng+0.1
即=>77.5789
至77.7789
我的查询方法是->
this.$http.get("https://something.com/cities_&_stops_lat_&_lng/'+28.1X +'/'+77.5X+'.json")
如果某个东西在1&5
之后,那么它就被命名为X->用什么来代替X来实现它呢
这意味着,如果某个对象在Db中为28.1…
或77.5…
时,它应该被查询
Sim卡,我将查询rest可能的组合如果它将路径名组件作为正则表达式处理,您可以使用
\d
匹配任何数字。您还需要在28.1
中转义
,这样它将被逐字处理(regexp中的
匹配任何字符)。如果需要,您应该使用encodeURIComponent()
对所有这些剪切字符进行正确编码
this.$http.get("https://something.com/cities_&_stops_lat_&_lng/'+encodeURIComponent('28\\.1\\d{3}') +'/'+encodeURIComponent('77\\.5\\d{3}')+'.json");
什么是“Sim”?@NetMage“类似”?
.get()
如何查询json数据库?为什么需要任何东西来代替X
?如果您只是寻找大致的位置,1位数的精度可能就足够了。@NetMage它的firebase数据库,通过vue资源查询