Google maps 从用户输入的顶点绘制多边形google maps api
我的web应用程序上有一个文本区域,允许用户输入多边形的顶点。我想实现一个按钮,当点击时,输入顶点的多边形将在谷歌地图中绘制。 顶点将始终采用以下格式:Google maps 从用户输入的顶点绘制多边形google maps api,google-maps,google-maps-api-3,polygon,Google Maps,Google Maps Api 3,Polygon,我的web应用程序上有一个文本区域,允许用户输入多边形的顶点。我想实现一个按钮,当点击时,输入顶点的多边形将在谷歌地图中绘制。 顶点将始终采用以下格式: 25.82024674666931, 55.66104912743973, 25.54465656761206, 48.11048789757425, 25.22561664287819, 5.57756899014949, 25.47485219998054, 26.21461743851616 最好的方法是什么 非常感谢您的帮助如果您相信
25.82024674666931, 55.66104912743973,
25.54465656761206, 48.11048789757425,
25.22561664287819, 5.57756899014949,
25.47485219998054, 26.21461743851616
最好的方法是什么
非常感谢您的帮助如果您相信输入始终是干净的,那么只需几步,就不会有任何问题 首先,将逗号分隔的文本转换为latlng数组
function textToLatLngs(text) {
var dots = text.value.split(",");
var latLngs = [];
for(var i = 0; i < dots.length; i += 2) {
latLngs[i/2] = new google.maps.LatLng(parseFloat(dots[i]),
parseFloat(dots[i+1]));
}
return latLngs;
}
最后,将HTML和Javascript与事件侦听器链接(我把我的放在initialize()
)
使用HTML表单,如:
<form id="form">
<input id="button1" type="button" value="get polygon">
<br /><br />
<textarea id="coordsinput" cols="22" rows="20">
25.82024674666931, 55.66104912743973,
25.54465656761206, 48.11048789757425,
25.22561664287819, 5.57756899014949,
25.47485219998054, 26.21461743851616
</textarea>
</form>
25.82024674666931, 55.66104912743973,
25.54465656761206, 48.11048789757425,
25.22561664287819, 5.57756899014949,
25.47485219998054, 26.21461743851616
每次单击按钮时,该按钮将绘制新多边形。如果只想移动单个多边形,则需要在单击按钮时调用SetPath
建议您查看和。
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(25.0, 25.0),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
google.maps.event.addDomListener(
document.getElementById("button1"),
'click',
function() {
drawPolygon(textToLatLngs(document.getElementById('coordsinput')));
});
}
<form id="form">
<input id="button1" type="button" value="get polygon">
<br /><br />
<textarea id="coordsinput" cols="22" rows="20">
25.82024674666931, 55.66104912743973,
25.54465656761206, 48.11048789757425,
25.22561664287819, 5.57756899014949,
25.47485219998054, 26.21461743851616
</textarea>
</form>