2017-03-03 22 views
6

Có API được lưu trữ nào chuyển đổi vĩ độ và kinh độ sang vùng lân cận Manahttan không?API để chuyển đổi lat lon thành khu phố NYC

Tôi biết rằng Zillow có số shapefile nhưng tôi muốn sử dụng API nhiều hơn.

Tôi đã xem fewquestions. Dường như NYC mở data cũng có thông tin vùng lân cận. Gần nhất tôi đã đến để tìm một API mà có lat lon là thời gian Districts API nhưng nó dường như không được chấp nhận vì nó không có trong danh sách API của họ và các liên kết chuyển hướng đến các danh sách đó.

Có API công khai không? Hay tôi cần phải tạo một ứng dụng heroku với một shapefile zillow và tạo của riêng tôi?

Google maps chỉ trả manhattan để đáp ứng mã hóa địa lý của nó, không phải là một khu phố cụ thể ở Manhattan

+0

Ý anh là gì bởi "khu phố cụ thể" ở Manhattan? Upper East Side? – geocodezip

+0

@geocodezip có. – user2954587

Trả lời

2

Bạn có thể sử dụng MapBox API cho mã hóa địa lý đảo ngược và phân tích các dữ liệu thu được JSON để trích xuất các tên Vùng lân cận. Tôi đã tạo một ví dụ nhỏ mà bạn có thể truyền cảm hứng từ đó.

Code:

//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>

Xem this example trong JsFiddle

+0

xin lỗi tôi đã không thấy điều này sớm để cung cấp cho đầy đủ tiền thưởng! @mydsi – user2954587

3

Có một vài giải pháp cho bạn khách quan như CartoDB tích hợp, Bing API vị trí, geopy, geocoder, SmartyStreets API và các thiết bị khác.

Chúng ta hãy khám phá này sử dụng CartoDB:

Tạo một tập tin với kinh độ và vĩ độ phối ở New York.

Sử dụng một NYC tập tin khu dân cư hình học từ Zillow

Tải lên các tập tin để Cartodb và geoencode kinh độ và vĩ độ phối như một đối tượng hình học trong kinh độ của bạn và vĩ độ tập phối hợp.

Chạy truy vấn SQL sau từ bên trong file:

SELECT a.*, 
     b.neighborhood 
FROM inputFileName 
as a, 
    nyc_pediacities_neighborhoods_v3_polygon as b 
WHERE ST_Within(a.the_geom,b.the_geom) 

Chúng tôi đang tạo ra hai đối tượng, inputFile như ashapefile như b, sau đó kết hợp các hình khối với nhau với mệnh đề WHERE.

Chúng tôi đang tạo cột mới có các hàng biểu thị vùng lân cận NYC của kinh độ và vĩ tuyến của cùng một hàng.

Chỉ cần xuất tệp theo định dạng mong muốn và tận hưởng thông tin.

Người ta có thể dễ dàng tự động hóa quá trình bằng cách sử dụng một trong các tích hợp của họ. Điều này sẽ hoạt động chặt chẽ như một API lý tưởng. Xem this

Gói python geopy cũng đáng được chú ý. Kiểm tra this

Bạn có thể đạt được kết quả tương tự bằng cách sử dụng API vị trí Bing.Xem API

Một giải pháp khả thi khác là xây dựng API của riêng bạn từ dữ liệu mở.

Kiểm tra geocoderSmartyStreets

Các vấn đề liên quan