Есть несколько способов настроить систему, чтобы группа людей могла добавлять корректирующие «границы».
Это зависит от того, сколько данных есть, но я думаю, что вам, вероятно, следует решить эту проблему с помощью полилиний, наложенных на базовую карту. Вы можете столкнуться с проблемами при использовании этого подхода, если у вас очень большое количество границ или граничные полигоны очень детализированы с очень большим количеством углов. Веб-браузер может начать немного перегружаться, если вы представляете слишком много картографических данных в виде векторного наложения, но с таким подходом вы можете продвинуться довольно далеко.
Есть хороший инструмент под названием uMap, который позволяет создавать карту с ломаными линиями, очень просто наведя и нажав образом, а затем открыть его для группы людей, чтобы внести изменения.
Это должно дать вам некоторое представление о том, что возможно с точки зрения редактируемых полилиний, но я не думаю, что это даст вам желаемую модель разрешений или функцию «определить, находится ли адрес в пределах определенной территории». Однако это открытый исходный код, поэтому его можно настроить или...
разработать что-то подобное самостоятельно с нуля, используя API веб-картографии. Вы спрашиваете об API, поэтому я предполагаю, что это не сумасшедшее предложение. Моя личная рекомендация для этого — начать с leafletJS и OpenStreetMap. Очень простой пример рисования ломаной линии.
OpenStreetMap обычно не применяет никаких условий к данным, наложенным на него, если только вы не копируете («извлекаете») существенный фрагмент геоданных путем отслеживания с фоновой карты, и в этом случае он должен иметь лицензию ODbL. Наверное не в вашем случае. Google, напротив, имеет довольно агрессивные условия использования своего API, предоставляя им использование ваших данных. Большинство веб-разработчиков в блаженном неведении об этом. И Google вообще не разрешает копирование своих карт (на самом деле это большая «открытая» разница с OpenStreetMap)
В обоих случаях, когда дело доходит до наложения полилиний, вы являетесь владельцем накладываемых данных, храните их на своем собственном сервере, и разрешено коммерческое использование базовой карты/API.
Когда дело доходит до самостоятельного создания, функция «определить, находится ли адрес в пределах определенной территории» становится немного сложнее, но это также та функция, которую вы могли бы представить с хорошим UX, если вы создадите ее самостоятельно. В противном случае такой инструмент, как ArcGIS online, может позволить вашим пользователям выполнять такие вычисления, но также чертовски запутает ваших пользователей, позволив им выполнять все виды других вычислений. Поэтому, чтобы создать его самостоятельно, найдите API-интерфейсы «геокодирования», чтобы перейти от адреса к широте/долготе. Тогда, возможно, взгляните на turfjs для расчета (на стороне клиента), в какую полилинию попадает точка. Это только один из возможных подходов
надеюсь, это поможет
person
Harry Wood
schedule
16.06.2015