Google maps 如何在谷歌地图中为多边形应用可编辑标记
我正在处理多边形距离区域,我想添加一个标记,并想得到它之间的距离,我找到了代码,但我无法编辑该多边形区域,也无法添加标记,我尝试了很多,但它对我不起作用,有人能帮我解决这个问题吗Google maps 如何在谷歌地图中为多边形应用可编辑标记,google-maps,google-maps-api-3,google-maps-markers,google-maps-api-2,Google Maps,Google Maps Api 3,Google Maps Markers,Google Maps Api 2,我正在处理多边形距离区域,我想添加一个标记,并想得到它之间的距离,我找到了代码,但我无法编辑该多边形区域,也无法添加标记,我尝试了很多,但它对我不起作用,有人能帮我解决这个问题吗 <!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8">
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Polygon Arrays</title>
<style>
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="map"></div>
<script>
// This example creates a simple polygon representing the Bermuda Triangle.
// When the user clicks on the polygon an info window opens, showing
// information about the polygon's coordinates.
var map;
var infoWindow;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 5,
center: {lat: 24.886, lng: -70.268},
mapTypeId: 'terrain'
});
// Define the LatLng coordinates for the polygon.
var triangleCoords = [
{lat: 25.774, lng: -80.190},
{lat: 18.466, lng: -66.118},
{lat: 32.321, lng: -64.757}
];
// Construct the polygon.
var bermudaTriangle = new google.maps.Polygon({
paths: triangleCoords,
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 3,
fillColor: '#FF0000',
fillOpacity: 0.35
});
bermudaTriangle.setMap(map);
// Add a listener for the click event.
bermudaTriangle.addListener('click', showArrays);
infoWindow = new google.maps.InfoWindow;
}
/** @this {google.maps.Polygon} */
function showArrays(event) {
// Since this polygon has only one path, we can call getPath() to return the
// MVCArray of LatLngs.
var vertices = this.getPath();
var contentString = '<b>Bermuda Triangle polygon</b><br>' +
'Clicked location: <br>' + event.latLng.lat() + ',' + event.latLng.lng() +
'<br>';
// Iterate over the vertices.
for (var i =0; i < vertices.getLength(); i++) {
var xy = vertices.getAt(i);
contentString += '<br>' + 'Coordinate ' + i + ':<br>' + xy.lat() + ',' +
xy.lng();
}
// Replace the info window's content and position.
infoWindow.setContent(contentString);
infoWindow.setPosition(event.latLng);
infoWindow.open(map);
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDYeDBDl-8Wx98Az55EbVnpvRfSIBbwxyE&callback=initMap">
</script>
</body>
</html>
多边形阵列
/*始终明确设置贴图高度以定义div的大小
*包含映射的元素*/
#地图{
身高:100%;
}
/*可选:使示例页面填充窗口*/
html,正文{
身高:100%;
保证金:0;
填充:0;
}
//本例创建了一个表示百慕大三角形的简单多边形。
//当用户单击多边形时,将打开一个信息窗口,显示
//有关多边形坐标的信息。
var映射;
var信息窗口;
函数initMap(){
map=new google.maps.map(document.getElementById('map'){
缩放:5,
中心:{lat:24.886,lng:-70.268},
mapTypeId:'地形'
});
//定义多边形的板条坐标。
var triangleCoords=[
{lat:25.774,lng:-80.190},
{lat:18.466,lng:-66.118},
{lat:32.321,lng:-64.757}
];
//构造多边形。
var bermudaTriangle=新建google.maps.Polygon({
路径:三角形门,
strokeColor:“#FF0000”,
笔划不透明度:0.8,
冲程重量:3,
填充颜色:'#FF0000',
不透明度:0.35
});
百慕大陆角。设定图(map);
//为单击事件添加侦听器。
bermudaTriangle.addListener('click',showArray);
infoWindow=新建google.maps.infoWindow;
}
/**@this{google.maps.Polygon}*/
函数ShowArray(事件){
//因为这个多边形只有一条路径,所以我们可以调用getPath()来返回
//LatLngs的MVCArray。
var顶点=this.getPath();
var contentString='百慕大三角多边形
'+
'单击的位置:
'+event.latLng.lat()+','+event.latLng.lng()+
“
”;
//在顶点上迭代。
对于(var i=0;i'+'坐标'+i+':
'+xy.lat()+','+
xy.lng();
}
//替换信息窗口的内容和位置。
setContent(contentString);
infoWindow.setPosition(event.latLng);
打开(地图);
}
若要添加标记,请编辑脚本并将此代码放在三角形文件夹下:
// Add Markers to Coordinates
for(var i = 0; i < triangleCoords.length; i++) {
var pos = triangleCoords[i];
var marker = new google.maps.Marker({
map: map,
position: pos,
draggable: true
});
marker.setMap(map);
markers.push(marker);
}
//将标记添加到坐标
对于(变量i=0;i
要使用标记进行特定操作,请转到此处:
要获取距离,请使用距离矩阵:
希望这能帮助你行动起来。
JSBin:若要添加标记,请编辑脚本并将此代码放在triangleCoords下:
// Add Markers to Coordinates
for(var i = 0; i < triangleCoords.length; i++) {
var pos = triangleCoords[i];
var marker = new google.maps.Marker({
map: map,
position: pos,
draggable: true
});
marker.setMap(map);
markers.push(marker);
}
//将标记添加到坐标
对于(变量i=0;i
要使用标记进行特定操作,请转到此处:
要获取距离,请使用距离矩阵:
希望这能帮助你行动起来。
JSBin:您尝试添加什么标记或编辑不起作用的多边形?您试图向发布的代码中添加什么?您试图添加什么标记或编辑不起作用的多边形?您想在发布的代码中添加什么?非常感谢,您能帮助我如何拖动此标记吗?这样我就可以更改区域只需将“draggable”选项添加到您的标记选项中。我编辑了代码,加入了“draggable”。了解有关标记选项的更多信息:[JavaScript V3引用(标记选项属性)]-[非常感谢,您能帮助我如何拖动此标记吗?],这样我就可以更改区域只需将“Dragable”选项添加到标记选项中。我编辑了代码以包含“Dragable”。了解有关标记选项的更多信息:[JavaScript V3引用(标记选项属性) - [