如何在Google Maps API中编辑信息窗口?

时间:2010-03-14 07:56:13

标签: jquery google-maps

我想点击它时可以编辑信息窗口。

这是我的代码:

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
        <meta name="viewport" content="width=device-width,minimum-scale=0.3,maximum-scale=5.0,user-scalable=yes">

    </head>
<body onload="initialize()" onunload="GUnload()">

<style type="text/css">
*{
    margin:0;
    padding:0;
}
</style>

<div id="map_canvas" style="width: 500px; height: 300px;"></div>

<div class=b style="width: 20px; height: 20px;background:red;position:absolute;left:700px;top:200px;"></div>
<div class=b style="width: 20px; height: 20px;background:red;position:absolute;left:700px;top:200px;"></div>

<script src="jquery-1.4.2.js" type="text/javascript"></script>
<script src="jquery-ui-1.8rc3.custom.min.js" type="text/javascript"></script>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA-7cuV3vqp7w6zUNiN_F4uBRi_j0U6kJrkFvY4-OX2XYmEAa76BSNz0ifabgugotzJgrxyodPDmheRA&sensor=false"type="text/javascript"></script>

<script type="text/javascript">
var aFn;
//**********
function initialize() {
   if (GBrowserIsCompatible()) {
      var map = new GMap2(document.getElementById("map_canvas"));
      var center=new GLatLng(39.9493, 116.3975);
      map.setCenter(center, 13);

      aFn=function(x,y) {
        var point =new GPoint(x,y)
        point = map.fromContainerPixelToLatLng(point);
        var marker = new GMarker(point,{draggable:true});

        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml("<b>wwww</b>");
        });

        map.addOverlay(marker);

        $(".b").draggable({
          revert: true,
          revertDuration: 0
        });

        $("#map_canvas").droppable({
          drop: function(event,ui) {
             aFn(event.pageX-$("#map_canvas").offset().left,event.pageY-$("#map_canvas").offset().top);
          }
        });
      }
   }
</script>
</body>
</html>

1 个答案:

答案 0 :(得分:2)

您可能需要查看contentEditable属性,如以下示例所示:

function initialize() {
   if (GBrowserIsCompatible()) {
      var map = new GMap2(document.getElementById("map_canvas"));
      var center = new GLatLng(39.9493, 116.3975);
      map.setCenter(center, 13);

      var marker = new GMarker(new GLatLng(39.9493, 116.3975),{draggable:true});

      GEvent.addListener(marker, 'click', function() {
         marker.openInfoWindowHtml('<div contentEditable="true" ' +
                                   'style="height: 100px; overflow: auto;">' +
                                   'wwww</div>');
      });

      map.addOverlay(marker);
   }
}

这适用于所有现代浏览器。

contentEditable Example