Я должен позволить пользователю вводить несколько почтовых индексов, извлекать широту и долготу из базы данных, а затем строить огромный многоугольник, который их охватывает.
Я кодирую на Java и использую Google Maps API V3. У меня нет проблем со сборкой одного почтового индекса. Но при добавлении дополнительных почтовых индексов сгенерированные полилинии выходят из строя и искажают многоугольник, как показано на рисунке ниже.
Что мне нужно изменить в моем коде, чтобы сделать все эти меньшие полигоны одним большим? Я поискал в Google ответы, и все, что мне удалось найти, это построение полигона каждого почтового индекса по отдельности, но это все равно не даст мне конечный результат в виде большего одиночного полигона.
В настоящее время, после ввода почтовых индексов, программа собирает точки широты и долготы из базы данных и передает их в гигантский массив массивов (точнее, String[][]), который затем передается html и javascript в сгенерировать полученный полигон.
Мой javascript очень похож на простой пример многоугольника GoogleMaps API V3:
function clearHello(coords1){
coords = coords1
var triangleCoords = new Array();
var l = coords.length;
for (var x = 0; x < l; x++){
triangleCoords[x] = new google.maps.LatLng( coords[x][0], coords[x][1]);
}
// Construct the polygon.
bermudaTriangle = new google.maps.Polygon({
paths: triangleCoords,
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35
});
bermudaTriangle.setMap(document.map);
Предложения? Существует ли метод кода, который возьмет мой гигантский массив, а затем удалит внутренние точки, которые, по-видимому, являются причиной этого искажения?
РЕДАКТИРОВАТЬ: интересно узнать о другом подходе, знает ли кто-нибудь способ удалить внутренние линии, создающие причудливую трапециевидную вещь, чтобы многоугольник почтового индекса мог правильно заполниться? Я знаю, что могу сделать их прозрачными, но это не остановит искажение многоугольника. Кроме того, простое управление им как несколькими полигонами, которые я заполняю, не будет работать, поскольку эта программа должна иметь возможность обрабатывать до 200 почтовых индексов с координатами за раз.