在Google Maps JavaScript中按功能构建多个多边形
building multiple polygons by function in google maps javascript
我想在谷歌地图中构建很多区域,并用多边形定义每个区域。如果我一个接一个地做,它可以正常工作(在初始化函数内):
name = new google.maps.Polygon({
paths: coords,
strokeColor: 'darkgreen',
strokeOpacity: 0.3,
strokeWeight: 1,
fillOpacity: 0.05
});
//some event
//highlights polygon when mouseover
google.maps.event.addListener(name, 'mouseover', function () {
name.setOptions({ fillColor: 'yellow', fillOpacity: 0.25 });
});
//then displaying it on the map:
name.setMap(map);
现在我想有一个函数来输入坐标来构建多边形,就像这样。但是只是调用该函数会阻止渲染其他多边形,所以我知道调用它有问题:
iName = new drawPolygon(polyName, coords);
iName.setMap(map);
该函数如下所示:
function drawPolygon(polyName, coords) {
polyName = new google.maps.Polygon({
paths: coords,
strokeColor: 'darkgreen',
strokeOpacity: 0.3,
strokeWeight: 1,
//fillColor: 'green',
fillOpacity: 0.05
});
//highlights polygon when mouseover
google.maps.event.addListener(polyName, 'mouseover', function () {
polyName.setOptions({ fillColor: 'yellow', fillOpacity: 0.25 });
});
}
关于为什么的任何帮助,我怎么说错了?
drawPolygon 没有返回语句。它返回null
. null
没有 .setMap 方法。
扩展 geocodezip 的答案,只需向函数添加一个 return 语句即可。
function drawPolygon(polyName, coords) {
polyName = new google.maps.Polygon({
paths: coords,
strokeColor: 'darkgreen',
strokeOpacity: 0.3,
strokeWeight: 1,
fillOpacity: 0.05
});
//highlights polygon when mouseover
google.maps.event.addListener(polyName, 'mouseover', function () {
polyName.setOptions({ fillColor: 'yellow', fillOpacity: 0.25 });
});
return polyName;
}
在这种情况下,我也倾向于不费心将polyName
作为参数传递到函数中。 在调用 drawPolygon 之前,您不必费心向我们展示创建 polyName 变量的代码。 但我假设你没有用它做任何特别聪明的事情,需要你这样做。
所以重构:
iName = new drawPolygon(coords);
iName.setMap(map);
function drawPolygon(coords) {
var polyName = new google.maps.Polygon({
paths: coords,
strokeColor: 'darkgreen',
strokeOpacity: 0.3,
strokeWeight: 1,
fillOpacity: 0.05
});
//highlights polygon when mouseover
google.maps.event.addListener(polyName, 'mouseover', function () {
polyName.setOptions({ fillColor: 'yellow', fillOpacity: 0.25 });
});
return polyName;
}
相关文章:
- 我应该如何从xml文件构建一个javascript页面
- 如何在DOM元素上按类型构建此函数
- Sencha Touch构建-排除文件
- RubyonRails——构建交互式接口应该朝哪个方向发展
- SVG/JavaScript:尝试选择和更改多边形点
- 如何在构建node-webkit应用程序后获取外部资源
- Ext.js从json构建模型关系的问题
- 如何获取谷歌地图多边形的当前fillColor
- 如何为生产构建angular2应用程序
- Grunt构建导致Angular应用程序在dist上崩溃
- 构建JS测试,警报窗口重复上一个Q,而不是问下一个Q
- 动态构建一个数据表与scriplets
- 如何在OpenLayers中获取动态绘制的多边形的坐标
- 如何只使用特定的表行构建简单的手风琴
- 为tweet构建chrome扩展
- 如何构建angular.js应用程序
- 如何使用Meteorjs构建实时应用程序
- jquery从2个json字符串构建一个复选框表单
- 在Google Maps JavaScript中按功能构建多个多边形
- 加拿大各省的坐标来构建谷歌地图多边形