有一个网页,显示来自许多来源的天气图表。你选择你的来源,图表的轮廓出现在谷歌地图上。(参见http://www.geoffschultz.org/weather_map.php Weather Charts/GMDSS/Forecasts - 应该绘制 3 个多边形) 到目前为止,所有图表都是矩形的,但我只是遇到了对非矩形图表的需求. 我在编写 js 时考虑到了这一点,但我感到很困惑,因为只显示了最后绘制的多边形。关于多个多边形,我有什么遗漏吗?
代码非常简单。它得到一个边界框坐标数组。对于简单的矩形,数组元素看起来像“-31,-32|2,25”,而对于多边形,它只有更多的坐标,用“|”分隔。如果有 2 个坐标,我画一个矩形,否则我画一个多边形,用第一个点关闭它。
我做错了什么,因为它适用于矩形?
——杰夫
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});
}
}