谷歌在一张地图上映射两个标记

时间:2011-05-16 14:18:46

标签: php google-maps

嘿。我试图将两个点放在具有相同div id的单个地图上。
但它不起作用。
代码:

for 1st,

  var map = new GMap2(document.getElementById("map-canvas"));
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());
  map.setCenter(new GLatLng(<?=$lat;?>,<?=$lng;?>), 6);

  var point = new GLatLng(<?=$lat;?>,<?=$lng;?>);
  var marker = createMarker(point,'Welcome:<b></b><br>Second Info Window with an image<br><img src="http://localhost/gps/user_photo/" width=80 height=80>')
  map.addOverlay(marker);


  function createMarker(point,html) {
        var marker = new GMarker(point);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }

代表第二,

  var map = new GMap2(document.getElementById("map-canvas"));
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());
  map.setCenter(new GLatLng(<?=$mylat;?>,<?=$mylng;?>), 6);

  var point1 = new GLatLng(<?=$mylat;?>,<?=$mylng;?>);
  var marker = createMarker1(point1,'Welcome:<b></b><br>Second Info Window with an image<br><img src="http://localhost/gps/user_photo/" width=80 height=80>')
  map.addOverlay(marker);


  function createMarker1(point,html) {
        var marker = new GMarker(point);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }

为什么两个点没有在一张地图中显示????? 它将在两个不同的地图中看到......

2 个答案:

答案 0 :(得分:1)

  //set up map as before

  var point0 = new GLatLng(<?=$mylat0;?>,<?=$mylng0;?>);
  var point1 = new GLatLng(<?=$mylat1;?>,<?=$mylng1;?>);
  var marker0 = createMarker(point0,'Welcome:<b></b><br>First Info Window etc);
  var marker1 = createMarker(point1,'Welcome:<b></b><br>Second Info Window etc);
  map.addOverlay(marker);

// only declare this once
  function createMarker(point,html) {
        var marker = new GMarker(point);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }

这是一种方法,只是为了让它适合你,但基本上js点和标记应该是你循环的数组 - 可能是PHP中的$ mylat和$ mylong变量。

答案 1 :(得分:0)

据我了解 - 你想在一个地图上的一个地图上添加两个点。 如果是这样 - 您不需要两次初始化Gmap,只需执行以下操作: http://pastebin.com/BtvdfaiP