GoogleMaps V3仅显示1个多边形
GoogleMaps V3 Only Displays 1 Polygon
有一个网页,显示来自许多来源的天气图。你选择你的来源,图表的轮廓就会出现在谷歌地图上。(请参见http://www.geoffschultz.org/weather_map.php天气图/GMDSS/天气预报-应该画3个多边形)到目前为止,所有的图表都是矩形的,但我刚刚发现需要非矩形的图表。我在编写js时就考虑到了这一点,但我一直很困惑,因为只显示最后绘制的多边形。关于多个多边形,我是否缺少一些东西?
代码非常简单。它得到一个边界框坐标数组。对于简单的矩形,数组元素看起来像"-31,-32|2,25",而对于多边形,它只有更多由"|"分隔的坐标。如果有两个坐标,我会画一个矩形,否则我会画多边形,用第一个点将其闭合。
我做错了什么,因为它适用于矩形?
--Geoff
for (i in bb[selValue])
{
bb_lat_long = bb[selValue][i]["bb_lat_long"].split("|");
if (bb_lat_long.length == 2) //Rectangle
{
lat_long = bb_lat_long[0].split(",");
sw = new google.maps.LatLng(lat_long[0], lat_long[1]);
lat_long = bb_lat_long[1].split(",");
ne = new google.maps.LatLng(lat_long[0], lat_long[1]);
bounds = new google.maps.LatLngBounds(sw, ne);
bounding_box = new google.maps.Rectangle({map: map, bounds: bounds, fillOpacity: 0.05, strokeWeight: 1});
}
else // polygon
{
poly_lat_long.length = 0;
for (j = 0; j < bb_lat_long.length; j++)
{
lat_long = bb_lat_long[j].split(",");
poly_lat_long.push(new google.maps.LatLng(lat_long[0], lat_long[1]));
}
lat_long = bb_lat_long[0].split(",");
poly_lat_long.push(new google.maps.LatLng(lat_long[0], lat_long[1])); // close polygon with 1st point
bounding_box = new google.maps.Polygon({map: map, paths: poly_lat_long, fillOpacity: 0.05, strokeWeight: 1});
}
}
我的怀疑是,这与重新使用新多边形中的路径有关(你最终得到了多个多边形,只是所有的多边形都是一样的,也许如果你本地声明poly_lat_long(使用var),或者创建一个createPolygon函数,在路径上获得函数闭包。
我以前在使用poly_lat_long.length = 0;
清除路径数组时看到过这种行为而不是CCD_ 2。
Google Maps API v3小组讨论类似问题的线程
相关文章:
- GoogleMaps V3仅显示1个多边形
- ArcGIS JavaScript API API 合并/溶解两个多边形
- d3 中具有不同翻转操作的多个多边形
- D3 map - 将两个不相交的 SVG 多边形路径合并为一个路径
- 多边形谷歌地图中的多个孔在迭代数组时
- 谷歌地图上的多个多边形 - 不起作用 - 连接
- 谷歌地图按多个区域(多边形)过滤
- 在Google Maps JavaScript中按功能构建多个多边形
- 如何使用Google-Maps-API-3绘制多个多边形
- 在 js 中绘制多个多边形
- 在 Google Maps Javascript API v3 中一次拖动多个多边形
- 如何在同一个谷歌地图上创建多个多边形
- 在Google Maps API V3上从XML文件绘制多个多边形
- Google.maps.JavaScript api;同时移动多个多边形的顶点
- 多个多边形显示在谷歌地图上
- 多个多边形与多种颜色在一个谷歌地图
- 绘制多个多边形在谷歌地图API v3从MySQL数据库
- 在谷歌地图API中获得多个多边形
- 在JavaScript中计算两个多边形的重叠百分比
- 谷歌地图绘图管理器限制为1个多边形