2013-05-04 9 views
0

Возможно ли с помощью leaflet.js или mapbox.js определить, какой тип местности/карты маркер включен. Например, море, земля, дорога или здания?Как определить, какой тип местности/карты имеет маркер или точка?

http://leafletjs.com/ http://mapbox.com/

+1

Краткий ответ: нет. Вам нужно будет загрузить данные osm и запросить базу данных. – flup

ответ

2

Если вы строите свою собственную карту с TileMill, вы могли бы сделать это с интерактивностью: http://mapbox.com/tilemill/docs/crashcourse/tooltips/ Вы бы не нужно иметь всплывающее окно появляется, но вместо того, чтобы можно было использовать UTFGrid как ключ/хранилище значений, чтобы указать области, используемые на карте.

0

Это не метод, представленный в пакете LeafletJS (который я знаю).

Тем не менее, вы можете совместить свою карту Лифлета с Google Geocoding API, чтобы вернуть location_type, который расскажет вам, какой тип местности вы закончили.

Это не идеальный объект, но он должен дать вам уровень детализации, который вы ищете.

$.getJSON('http://maps.googleapis.com/maps/api/geocode/json?latlng=' + marker._latlng.lat + ',' + marker._latlng.lng + '&sensor=false', function(data) { 

    var terrain = data.results[0].geometry.location_type; 

}); 

Вот jsFiddle, показывающий, как это может сработать.