我是 javascript 和 Google map api 的新手,所以我编码了这样的点:“yzocFzynhVq}@n}@o}@nzD”并尝试用它绘制多段线,我还没有找到主题或文档解决我的问题。如何解码它的主题很少,但我不需要做那件事。我只需要使用编码点绘制折线。有人可以给我举个例子吗?
最佳答案
参见 geometry library documentation for decodePath
这会将您的编码字符串转换为可用于创建 Polyline 的 google.maps.LatLng 对象数组。
工作代码片段:
function initialize() {
var myLatLng = new google.maps.LatLng(24.886436490787712, -70.2685546875);
var mapOptions = {
zoom: 13,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.TERRAIN
};
var bermudaTriangle;
var map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
// Construct the polygon
bermudaTriangle = new google.maps.Polygon({
paths: google.maps.geometry.encoding.decodePath("yzocFzynhVq}@n}@o}@nzD"),
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35
});
bermudaTriangle.setMap(map);
map.setCenter(bermudaTriangle.getPath().getAt(Math.round(bermudaTriangle.getPath().getLength() / 2)));
}
google.maps.event.addDomListener(window, 'load', initialize);
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
#map_canvas {
height: 100%;
}
@media print {
html,
body {
height: auto;
}
#map_canvas {
height: 650px;
}
}
<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry&key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>
<div id="map_canvas"></div>
关于javascript - Google map api 绘制带有编码点的折线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13122020/