2015-05-29 81 views
0

我有一个简单的HTML和简单的KML文件,我可能试图在谷歌地图中显示。问题是单个多边形的填充工作不正常。如果你看下面的例子,你可以看到多边形填充在右侧(这对我的框架是正确的)。放大一层,填充物翻转到另一边。再次放大,然后翻转。缩小一次并翻转,缩小两次,然后回到正确的填充位置。当你不断缩小时,它仍然是正确的。Google maps api kml填写不正确

我已经阅读过有关使用geoxml3解析KML而不是让Google执行此操作的其他地方。虽然下载的trunk不支持多边形,但我认为我下载了它的分支版本。基于此,它看起来是解析KML并创建google.maps.Polyline对象。我的问题是我需要显示数百(而不是数千)的多边形,并且加载时间会转换KML,我认为这会影响性能。更不用说,我想让Google的缩放级别简化KML文件。

有什么想法?这已经工作了几年,几周前刚刚破产。在Chromium 37(linux)上测试Firefox 38(linux),Chrome 43(Win7),Firefox 37(Win7)和IE11(Win7)。我唯一的选择是尝试使用google.maps.ImageMapType()和google.maps.overlayMapTypes(),这需要相当多的重新处理工作。

谢谢!

HTML网页:

< HTML>
<头>
<风格>
#mapCanvas {高度:600px的;宽度:600px的;}
< /风格>
</head>
< body>
< div id =“mapCanvas”>
< script src =“http://maps.google.com/maps/api/js?v=3。 &库=几何,绘图,地方&传感器=假“/>
<脚本>
使用GoogleMap变种=新google.maps.Map(的document.getElementById( 'mapCanvas'),{
MAXZOOM:20,
MINZOOM:4,
变焦:17,
panControl:真,
zoomControl可:真,
scaleControl:真,
将streetViewControl:真,
倾斜:0,
center:new google.maps.LatLng(39.77420517,-94.83232857)
});
var kml = new google.maps。KmlLayer( 'http://itic.occinc.com/new5.kml',{
preserveViewport,用于:真,
suppressInfoWindows:真,
可点击:假,
图:使用GoogleMap
});
</SCRIPT>
</BODY>
</HTML>

而且KML(如果它消失我的服务器):


< KML的xmlns =“http://www.opengis.net/kml/2.2”>
<文件夹>
<名>区多边形文件夹< /名称>
<开放> 1 < /开放>
<描述> < /描述>
<标>
<名称>文件夹对象2(多边形)< /名称>
<多边形>
< altitudeMode>包括clampToGround </altitudeMode>
< outerB oundaryIs>
<线性环>
<坐标>
-94.84433855,39.53505883
-94.83010566,39.82194139
-94.59858395,39.8204777
-94.59383965,39.53213146
-94.84433855,39.53505883
< /坐标>
</LinearRing>
</outerBoundaryIs>
< /多边形>
< /标>
< /文件夹>
</KML>

+1

[我没有看到这个问题(http://www.geocodezip.com/v3_GoogleEx_layer-kml_linktoB.html?filename=http://itic.occinc.com/new5.kml) 。请注意,Google Maps JavaScript API KmlLayer存在一个未解决的问题,涉及多边形填充的奇怪问题:https://code.google.com/p/gmaps-api-issues/issues/detail?id=8015 – geocodezip

+0

另一个问题与KML呈现器是:https://code.google.com/p/gmaps-api-issues/issues/detail?id = 8003 – geocodezip

+0

好的。 [我确实看到了该问题](http://www.geocodezip.com/v3_GoogleEx_layer-kml_linktoB.html?lat=39.688826&lng=-94.595424&zoom=18&type=m&filename=http://itic.occinc.com/new5.kml&pvp = true)([starting a zoom = 16](http://www.geocodezip.com/v3_GoogleEx_layer-kml_linktoB.html?lat=39.688826&lng=-94.595424&zoom=16&type=m&filename=http://itic.occinc.com /new5.kml&pvp=true))。在[问题8015]中报告(https://code.google.com/p/gmaps-api-issues/issues/detail?id=8015) – geocodezip

回答

0

您可能必须坐标的KML格式不正确。下面是从Google Documentation(scroll up)的摘录:

四个或多个元组,每个由浮点值 经度,纬度和海拔高度的。高度组件是可选的。 不要在元组中包含空格。最后的坐标必须是与第一个坐标相同的 。坐标仅用十进制 度表示。

因此逗号后面的空格可能会给您带来麻烦。

此外,在附注中,我确信Google地图会显示KML文件大小限制。所以你可能会遇到显示数千个形状的问题。

+0

我已经达到了KML文件的大小限制,但并不经常。目前,速度的折衷值得一两个达到极限的用户。 – BrianP