【发布时间】:2012-05-31 13:19:14
【问题描述】:
如何使用用户输入坐标在谷歌地图上绘制多边形。我有两个输入字段(lat 和 lng),当用户单击按钮时,我想绘制多边形。我有这个代码,但它不起作用。谁能帮帮我?
HTML:
<form onsubmit="show(this.lat.value, this.lon.value); return false;">
<p><label>Latituda</label></p>
<input type="text" size="13" id="latbox2" name="lat" value="">
<p><label>Longituda</label></p>
<input type="text" size="13" id="lonbox2" name="lon" value="">
<p><input type="submit" id="button2" value="Show" class="btnsearch" ></p>
</form>
JavaScript:
function xz() {
if (GBrowserIsCompatible()){
map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(43.500752, 16.435547), 6);
map.setUIToDefault();
map.addMapType(G_SATELLITE_3D_MAP);
map.enableGoogleBar();
}
}
function show(lat, lon){
var latOffset = 0.01;
var lonOffset = 0.01;
var polygon = new GPolygon([
new GLatLng(lat, lon - lonOffset),
new GLatLng(lat + latOffset, lon),
new GLatLng(lat, lon + lonOffset),
new GLatLng(lat - latOffset, lon),
new GLatLng(lat, lon - lonOffset)
], "#f33f00", 5, 1, "#ff0000", 0.2);
map.addOverlay(polygon);
}
【问题讨论】:
-
什么是函数
xz()?为什么在其中定义show()?嵌套函数几乎从来都不是一个好主意:始终将它们定义为全局函数,除非您确切地知道为什么要嵌套它们。 -
对不起,我忘了放 } 来关闭函数 xz()。函数 show() 未在其中定义。我现在更新了代码。函数 xz() 用于加载谷歌地图。
标签: javascript html google-maps polygon latitude-longitude