javascript – Google地图绘制 – 通过拖动绘制线条或多边形
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Google地图绘制 – 通过拖动绘制线条或多边形,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2114字,纯文字阅读大概需要4分钟。
内容图文
![javascript – Google地图绘制 – 通过拖动绘制线条或多边形](/upload/InfoBanner/zyjiaocheng/710/10890e0caea6497fa38a886f03f5616a.jpg)
目前,您可以通过单击来创建节点,从而在地图上绘制多边形或折线.但是,如果您想要遵循河流或海岸线等功能,这可能既乏味又无懈可击.
有没有人知道可以通过单击拖动鼠标,或单击开始,然后拖动路径,然后单击停止来绘制路径的方法?
我看过DrawingManager和MouseEvent,但我还没有看到任何有希望的东西.
有没有办法根据click和mouseMove等事件连接绘图?
这将允许更准确和快速的功能.
解决方法:
工作流程:
> onm ousedown在地图上将地图的draggable-option设置为false,创建Polyline-Instance并将Polyline的clickable-option设置为false
>观察地图的mousemove事件,每次发生时将返回的LatLng推送到折线的路径
> onm ouseup删除地图的mousemove-listener,并将地图的draggable-option设置为true.您的折线已经完成
>当您不想创建多边形时,现在创建一个Polygon实例,将Polygon的路径设置为折线的路径并删除折线
<编辑> ;:
建议只使用按下的鼠标按钮进行绘制,否则地图永远不会被拖动.
演示:http://jsfiddle.net/doktormolle/YsQdh/
代码片段:(来自链接的jsfiddle)
function initialize() {
var mapOptions = {
zoom: 14,
center: new google.maps.LatLng(52.5498783, 13.425209099999961),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
google.maps.event.addDomListener(map.getDiv(), 'mousedown', function(e) {
//do it with the right mouse-button only
if (e.button != 2) return;
//the polygon
poly = new google.maps.Polyline({
map: map,
clickable: false
});
//move-listener
var move = google.maps.event.addListener(map, 'mousemove', function(e) {
poly.getPath().push(e.latLng);
});
//mouseup-listener
google.maps.event.addListenerOnce(map, 'mouseup', function(e) {
google.maps.event.removeListener(move);
if (document.getElementById('overlay').value == 'Polygon') {
var path = poly.getPath();
poly.setMap(null);
poly = new google.maps.Polygon({
map: map,
path: path
});
}
});
});
}
google.maps.event.addDomListener(window, 'load', initialize);
html,
body {
height: 100%;
margin: 0
}
#map_canvas {
height: 90%;
}
<script src="https://maps.googleapis.com/maps/api/js"></script>
Use the right mouse-button to draw an overlay
<br/>
<select id="overlay">
<option value="Polyline">Polyline</option>
<option value="Polygon">Polygon</option>
</select>
<div id="map_canvas"></div>
内容总结
以上是互联网集市为您收集整理的javascript – Google地图绘制 – 通过拖动绘制线条或多边形全部内容,希望文章能够帮你解决javascript – Google地图绘制 – 通过拖动绘制线条或多边形所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。