OpenStreetMap按照地名自动定位

在做GIS开发的时候,常常需要输入地名,地图自动定位到当前的地方,因为百度地图和谷歌地图中有类似的功能,但是在公司开发的时候,底图却用的是OpenStreetMap,没有百度地图和谷歌地图,不能调用百度地图定位的方法,并且接口也不是开源的。为了定位的准确性,所以就在官网上查看了OSM官网的文档,参考网址如下:

https://developer.mapquest.com/documentation/open/nominatim-search/search/

在地址栏输入http://nominatim.openstreetmap.org/search.php?format=json&zoom=18&addressdetails=1&q=角门西,服务器返回的数据如下:

[{"place_id":"21060783","licence":"Data © OpenStreetMap contributors, ODbL 1.0. http:\/\/www.openstreetmap.org\/copyright","osm_type":"node","osm_id":"2116038115","boundingbox":["39.8394284","39.8494284","116.3600357","116.3700357"],"lat":"39.8444284","lon":"116.3650357","display_name":"角门西, 马家堡西路, 新宫村, 丰台区, 北京市, 中国","class":"railway","type":"station","importance":0.111,"icon":"http:\/\/nominatim.openstreetmap.org\/images\/mapicons\/transport_train_station2.p.20.png","address":{"station":"角门西","road":"马家堡西路","village":"新宫村","county":"丰台区","state":"北京市","country":"中国","country_code":"cn"}},{"place_id":"4722780","licence":"Data © OpenStreetMap contributors, ODbL 1.0. http:\/\/www.openstreetmap.org\/copyright","osm_type":"node","osm_id":"528934416","boundingbox":["39.8394351","39.8494351","116.3598644","116.3698644"],"lat":"39.8444351","lon":"116.3648644","display_name":"角门西, 嘉和路, 新宫村, 丰台区, 北京市, 中国","class":"railway","type":"station","importance":0.111,"icon":"http:\/\/nominatim.openstreetmap.org\/images\/mapicons\/transport_train_station2.p.20.png","address":{"station":"角门西","road":"嘉和路","village":"新宫村","county":"丰台区","state":"北京市","country":"中国","country_code":"cn"}}]。。。
 
在js文件的代码如下所示:
var place=$("li.search .search_txt").val();   //输入的地名
$.getJSON("http://nominatim.openstreetmap.org/search.php?",{"format":"json","zoom":18,"addressdetails":1,"q":place}, function(data) { 
    console.log(JSON.stringify(data));
});
 
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值