У меня много сложных многоугольников с 750 + точками. Есть ли быстрый и эффективный способ получить ограничительную коробку? Мне не хотелось бы перебирать каждую точку и расширять ограничительную рамку.Получить ограничительную коробку с полигоном
Решение должно быть в javascript или, возможно, есть функция Google Maps API v3, которую я пропустил.
Нужно ли жестко задавать координаты ограничительной рамки и использовать их для уменьшения нагрузки на клиента?
Как многоугольники сделаны:
//Coordinates
var coordinates = [
new google.maps.LatLng(11,22),
new google.maps.LatLng(11,22),
new google.maps.LatLng(11,22),
//etc up to 200, 500 or even 800 points
]
//Options
var options = {
path: coordinates,
strokeColor: "#222",
strokeOpacity: 1,
strokeWeight: 2,
fillColor: "#000",
fillOpacity: 0,
zIndex: 0
}
//Create polygon
var polygon = new google.maps.Polygon(options);
//Show it on map
polygon.setMap(map);
мне нужно сделать свою домашнюю работу, потому что живые расчеты исключены точно. Мне, вероятно, придется сделать это нелегко, но может быть, некоторые из вас знают какой-нибудь удобный онлайн-инструмент, который вычисляет граничную рамку на основе вставленных коордов?
Мне нужна как можно более простая форма, потому что мне нужно проверить, находится ли мой многоугольник в видовом экране, и, вероятно, это будет кошмар с 800 очками, потому что я не знаю другого пути, кроме прокрутки всех точек.
Пожалуйста, включите код, чтобы показать, как вы показываете, что многоугольник. Это образ? SVG? Крошечные элементы? – Oriol
Если точки не сохранены в эффективной структуре данных (например, kde-tree), нет более эффективного решения, чем повторение точек. –
@Oriol Обновлен мой вопрос с кодом. – Solo