最近一周一直在研究GMap,终于有了点成绩,把生成点线面JS发到这里以备日后参考,同时跟大家分享一下。 #创建点的方法: function CreatePoints() { // #画点之前移除map范围内的click事件 GEvent.clearListeners(map, 'click'); var id = 0; var points = []; var str; GEvent.addListener(map, 'click', function(marker, point) { if (point) { id++; var NewMarker = new GMarker(point, { draggable: true }); var html = "<span><b>" + point + "</b><br/><span>"; map.addOverlay(NewMarker); NewMarker.openInfoWindowHtml(html); NewMarker.setIndex(id); str = point.lat() + " " + point.lng() + " " + id; points.push(str); document.getElementById("hidPoints").value = points.toString(); // #双击新建的点删除该点的marker GEvent.addListener(NewMarker, 'dblclick', function() { deleteMarker(NewMarker); // #删除数组中存的该点的值 points.splice(NewMarker.index - 1, 1); document.getElementById("hidPoints").value = points.toString(); }); // #拖动事件 GEvent.addListener(NewMarker, "dragstart", function() { map.closeInfoWindow(); points.splice(NewMarker.index - 1, 1); }); // #拖动的点落下 GEvent.addListener(NewMarker, "dragend", function() { var htmls = "<span><b>" + NewMarker.getPoint() + "</b><br/><span>"; NewMarker.openInfoWindowHtml(htmls); str = NewMarker.getPoint().lat() + " " + NewMarker.getPoint().lng() + " " + NewMarker.index; points.push(str); document.getElementById("hidPoints").value = points.toString(); }); } }); } #删除点的方法: function deleteMarker(marker) { //确定是否真的删除 if (!confirm("确定删除该地标吗?")) return; //给marker添加的新属性 var index = marker.index; //移除该图层 map.removeOverlay(marker); } #从XML中解析点的方法: function showPoints() { GDownloadUrl("XML/pointList.xml", function(data, responseCode) { var xml = GXml.parse(data); var markers = xml.documentElement.getElementsByTagName("marker"); for (var i = 0; i < markers.length; i++) { var pointy = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng"))); var marker = new GMarker(pointy, { draggable: true }); map.addOverlay(marker); } }); }