2013-06-25 2 views
5

Любые указатели на то, как нарисовать круг радиуса, указанный в метрах, поверх географической карты с использованием D3, будут весьма полезными.рисунок круга с радиусом, указанным в метрах на карте

Я попытался использовать Листовку, и это Circle (или CircleMarker), который принимает радиус в метрах, но мне нужно больше гибкости, чтобы играть с моими данными. D3 кажется довольно полезным, но я не уверен, как нарисовать круг заданного радиуса поверх карты, такой круг покрывает область, соответствующую данному радиусу (и приспосабливается к масштабированию и изменению проекции).

+0

«Мне нужно больше гибкости, чтобы играть с моими данными.» Что вы хотите, чтобы этот буклет не мог сделать? –

+0

Вы говорите о геодезических многоугольниках? Я не думаю, что Leaflet поддерживает это, не без какого-либо плагина. Этот пост может оказать некоторую помощь: http://gis.stackexchange.com/questions/17388/how-to-create-geodesic-polygons-in-openlayers. Это связано с OpenLayers, но логика может работать и здесь. –

+0

В D3 у вас будет географическая проекция, которая расскажет ему, как перевести мировые координаты в координаты карты. Затем вы можете использовать это, чтобы определить радиус карты круга в определенной позиции. –

ответ

12

Вы можете передать эти радиусы в метрах, используя последнюю версию Листовки. Радиус будет изменяться относительно уровней масштабирования.

Вот еще некоторая информация по Leaflet's documentation

L.circle([lat,lng], radius).addTo(map); 
+0

Отлично. Спасибо за обновление. – Bala

Смежные вопросы