将经纬度转换为纽约市街区的API

7

是否有托管的API可以将纬度和经度转换为曼哈顿街区?

我知道Zillow有一个shapefile,但我更愿意使用API。

我看了一些问题。看起来纽约市开放数据也有街区信息。

我找到的最接近接受经纬度的API是时代区域API,但似乎已被弃用,因为它不在他们的API列表中,而链接会重定向到这些列表。

是否有公开的API?还是我需要创建一个带有Zillow shapefile的Heroku应用程序并创建自己的API?

Google地图只返回曼哈顿的地理编码响应,而不是曼哈顿的特定社区。


“Specific neighborhood” 在曼哈顿是什么意思?是指上东区吗? - geocodezip
@geocodezip 是的。 - user2954587
2个回答

5
您可以使用 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>

请在JsFiddle中查看此示例


抱歉我没早点看到这个,无法给出完整的悬赏!@mydsi - user2954587

4

您的目标有几种解决方案,例如CartoDB集成Bing位置APIgeopygeocoderSmartyStreets API等。

让我们使用CartoDB来探索:

创建一个包含纽约市经纬度坐标的文件。

使用Zillow提供的纽约市社区几何文件。

将文件上传到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 作为 ashapefile 作为 b,然后使用 WHERE 子句将几何图形相互匹配。
我们正在创建一个新列,其中行表示相同行的经度和纬度的 NYC 社区。
只需以所需格式导出文件并享受信息即可。
您可以轻松地使用其中一个集成来自动化该过程。这将紧密地充当理想的 API。请参见 this Python 包 geopy 也值得关注。请查看 this 您可以使用 Bing Location API 实现相同的结果。请参见 API 构建自己的API是另一个可行的解决方案。

检查地理编码器SmartyStreets


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接