Я создаю карту Google со многими полигонами. Проблема в том, что когда мои полигоны отображаются, они окрашены непостоянно (разные цвета по всему телу полигона), и они не отображаются полностью. Включены 2 изображения, где вы можете увидеть количество заданного полигона, который не соответствует.
Требуемое поведение заключается в том, что полигоны отображаются полностью (нет прямой линии, где полигон не отображается, проходя по середине тела полигона), и цвет заливки полигона одинаков на всем полигоне.
Полагаю, это проблема листов. Вот код, который я использую для управления логиками «getTile» и «releaseTile» c для моего пользовательского типа карты:
GMICMapType.prototype.getTile = function(coord, zoom, ownerDocument) {
var c = Math.pow(2, zoom);
var c = Math.pow(2, zoom);
var tilex=coord.x,tiley=coord.y;
if (imageWraps) {
if (tilex<0) tilex=c+tilex%c;
if (tilex>=c) tilex=tilex%c;
if (tiley<0) tiley=c+tiley%c;
if (tiley>=c) tiley=tiley%c;
}
else {
if ((tilex<0)||(tilex>=c)||(tiley<0)||(tiley>=c)) {
var blank = ownerDocument.createElement('DIV');
blank.style.width = this.tileSize.width + 'px';
blank.style.height = this.tileSize.height + 'px';
return blank;
}
}
var img = ownerDocument.createElement('IMG');
var d = tilex;
var e = tiley;
var f = "t";
for (var g = 0; g < zoom; g++) {
c /= 2;
if (e < c) {
if (d < c) { f += "q" }
else { f += "r"; d -= c }
}
else {
if (d < c) { f += "t"; e -= c }
else { f += "s"; d -= c; e -= c }
}
}
GMICMapType.prototype.realeaseTile = function(tile) {
var idx = this.Cache.indexOf(tile);
if(idx!=-1) this.Cache.splice(idx, 1);
tile=null;
}
Кроме того, я использую этот код для pu sh полигоны на карту:
// Construct the sector outline.
window[sectorName] = new google.maps.Polygon({
name: sectorTitle,
infoWindowPointX: sectorCenterPointX,
infoWindowPointY: sectorCenterPointY,
knownSystems: knownSystems,
factionColor: factionColor,
paths: sectorCoords,
sectorDataNum: s,
strokeColor: sectorColor,
strokeOpacity: 1,
strokeWeight: 0.8,
zIndex: 1,
fillColor: sectorColor,
fillOpacity: 1
});
polygons.push(window[sectorName]);
window[sectorName].setMap(map);
Я предполагаю, что это код, относящийся к проблеме, но я не уверен, что является причиной проблемы, поэтому я не уверен, какой код включить. Если мне нужно включить другие разделы кода (или весь код), пожалуйста, дайте мне знать.