发布于 2017-03-15 18:14:02
您可以使用MapBox API进行逆向地理编码,并解析提取邻域名称所获得的JSON数据。我做了一个小小的例子,你可以从中得到启发。
代码:
//You can get your access_token if needed from mapbox.com
var access_token = '?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw';
var urlInit = 'https://api.mapbox.com/geocoding/v5/';
var mode = 'mapbox.places/';
var type = '&types=neighborhood';
$('#go').click(function() {
$('#result').html('');
lonlatInput = $('#lonlat').val();
lonlatInput = lonlatInput.split(',');
lonlat = lonlatInput[0].trim() + '%2C' + lonlatInput[1].trim() + '.json';
getNeighborhood(lonlat);
});
function getNeighborhood(lonlat) {
var url = urlInit + mode + lonlat + access_token + type;
$.ajax({
type: 'GET',
url: url,
success: function(rgeo) {
var result = rgeo;
var neighborhood = rgeo.features[0].text;
$('#result').html(neighborhood);
},
error: function(rgeo) {
console.log(rgeo);
}
});
}#result {
padding: 10px;
font-size: 2em;
color: blue;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" value="-73.945462,40.830182" id="lonlat" />
<button id="go">Geocode</button>
<div id="result"></div>
见这个例子 in JsFiddle
发布于 2017-03-14 05:49:05
您的目标有几种解决方案,如CartoDB integrations、Bing Location API、geopy、Geo编码器、SmartyStreets API等等。
让我们使用CartoDB来探讨这个问题
在NYC中创建一个具有经度和纬度坐标的文件。
使用齐洛中的NYC邻域几何文件
将文件上传到Cartodb,并在经纬度坐标文件中将经度和纬度坐标编码为几何对象。
从文件中运行以下SQL查询:
SELECT a.*,
b.neighborhood
FROM inputFileName
as a,
nyc_pediacities_neighborhoods_v3_polygon as b
WHERE ST_Within(a.the_geom,b.the_geom)我们正在创建两个对象,inputFile作为a,shapefile作为b,然后用WHERE子句相互匹配几何图形。
我们正在创建一个新的列,其中的行表示同一行的经度和纬度的NYC邻域。
只需将文件以理想的格式导出,并享受这些信息。
一个人可以很容易地使用他们的集成之一的过程自动化。这将是一个理想的API。请参阅这
python包geopy也值得注意。检查这
使用Bing Location API可以获得相同的结果。请参阅API接口
另一个可行的解决方案是从开放数据构建自己的API。
检查地编码器和SmartyStreets
https://stackoverflow.com/questions/42583857
复制相似问题