0

私は Gmapv2 でこれを機能させましたが、バージョン 3 は少しトリッキーであることが証明されています。

XML ファイルから他の属性をインフォバブルに追加したかったのですが、それらを追加しようとすると、クリック マーカーが壊れてしまいますか?

    <script type="text/javascript">
    var infowindow;
    var map;
    function initialize() {

        var myLatlng = new google.maps.LatLng(54.046575, -2.8007399);
        var myOptions = {
          zoom: 13,
          center: myLatlng,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
        downloadUrl("http://www.xxxxxx.com/xxxxx.com/server/venue_output.php",         function(data) {
          var markers = data.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var latlng = new         google.maps.LatLng(parseFloat(markers[i].getAttribute("latitude")),
                                parseFloat(markers[i].getAttribute("longitude")));
                                var event_name =         markers[i].getAttribute("event_title");
      var event_start = markers[i].getAttribute("event_start");
      var event_link = markers[i].getAttribute("event_link");    
            var marker = createMarker(markers[i].getAttribute("event_name"),latlng);
           }
         });
      }

      function createMarker(name, latlng) {
        var marker = new google.maps.Marker({position: latlng, map: map, bounce:true, icon : new google.maps.MarkerImage('http://www.gigizmo.com/gigizmo.com/app/images/marker.png')});
        google.maps.event.addListener(marker, "click", function() {
          if (infowindow) infowindow.close();
          infowindow = new google.maps.InfoWindow({content: "<b>" + name + "</b>" });
          infowindow.open(map, marker);
        });
        return marker;
      }

    </script>

event_link などの JavaScript 値をこのマーカー ウィンドウに追加するにはどうすればよいですか?

    infowindow = new google.maps.InfoWindow({content: "<b>" + name + "</b>" });
4

1 に答える 1

0

で提供されているこのコード スニペットを試すことができます:この例

function createMarker(..){

        eval(" infowindow"+time+" = new google.maps.InfoWindow({ content: pt.latLng.toString() });");
        eval(" marker"+time+" = new google.maps.Marker({ position: pt.latLng, map: map });");
        eval(" google.maps.event.addListener(marker"+time+", \"click\", function() { infowindow"+time+".open(map, marker"+time+"); });");
        time++;
//rest of your code
}

また、私の以前の経験について言えば、XML ファイルに改行が含まれていないことを確認してください。特に「name」変数に設定する値として。

于 2013-02-23T16:00:30.997 に答える