无需搜索循环即可高效查询附近位置

时间:2017-08-09 23:44:58

标签: 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"
        },
        "26.4499":{
            "74.6399":"PLACE 4"
        },
        "28.612912":{
            "77.227321":"PLACE 5"
        },
        "26.9124":{
            "75.7873":"PLACE 6"
        }
}

说我当前的位置是curr_lat = 28.2190 , curr_lng = 77.6789

我想查询附近的位置,而不是循环并找到每个位置的距离。

相反,我想在 10km范围内查询Say,大致 1 lat '或者' 1 lng = 100km (实际上是111公里)。

所以, 10 km = 0.1

因此,我会限制我的查询 - >   curr_lat - 0.1curr_lng + 0.1,即=> 28.119028.3190

Sim,curr_lng - 0.1curr_lng + 0.1,即=> 77.578977.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,我将查询其余可能的组合

1 个答案:

答案 0 :(得分:1)

如果它将路径名组件作为正则表达式处理,您可以使用\d匹配任何数字。您还需要转义.中的28.1,因此它将按字面处理(正则表达式中的.匹配任何字符)。如果需要,您应该使用encodeURIComponent()对所有这些截断字符进行编码。

this.$http.get("https://something.com/cities_&_stops_lat_&_lng/'+encodeURIComponent('28\\.1\\d{3}') +'/'+encodeURIComponent('77\\.5\\d{3}')+'.json");