2012-03-28 85 views
0

我想在地图上同时显示两个不同的位置,一个是当前位置,另一个是不同位置。我使用JavaScript V3版本。这是我的代码,用于显示一个位置。谷歌地图API V3 - 在同一地图上有两个标记的位置

  var pos = new google.maps.LatLng(latitude, longitude); 


      window.localStorage.setItem("event_location",pos); 

      if (!google) { 
        loadScript(); 
       } 
      var pos1 = window.localStorage.getItem("current_location"); 
       alert('position '+pos1); 

       var myOptions = { 
        center : pos, 
        zoom : 8, 
        mapTypeId : google.maps.MapTypeId.ROADMAP 
       }; 


       var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

       var contentString = '<div id="content">'+ 
       '<div id="siteNotice">'+ 
       '</div>'+ 
       '<h4 id="firstHeading" class="firstHeading">'+add+'</h4> ' + 
       '<div id="bodyContent">'+ 
       '<p>Meeting with'+'<b> '+ personName + '</b>, <br/>on ' + 
       '<b>'+startDate+'</b> at ' + 
       '<b>'+startTime+'</b>' + 
       '</div>'+ 
       '</div>'; 


      var infowindow = new google.maps.InfoWindow({ 
       content: contentString 
      }); 

      var marker = new google.maps.Marker({ 
       position: pos, 
       map: map, 
       title:"Event Location!" 
      }); 



      google.maps.event.addListener(marker, 'click', function() { 
       infowindow.open(map,marker); 
      }); 

pos1是我的第二个位置,它是通过手机当前位置方法计算出来的。请帮助我。

+0

请显示位置的存储方式?我的意思是'pos1'的价值是什么?一个字符串? – Diode 2012-03-28 05:45:04

+0

如果(navigator.geolocation){ \t \t navigator.geolocation.getCurrentPosition(函数成功(位置){ \t \t \t \t \t \t变种位置=新google.maps.LatLng(position.coords.latitude, \t \t \t \t \t \t position.coords.longitude); \t \t \t window.localStorage.setItem( “CURRENT_LOCATION”,位置); \t \t }); \t \t} else { \t \t alert('geolocation not supported'); \t \t} pos1是位置。 – upender 2012-03-28 05:56:14

回答

0

如果pos1google.maps.LatLng实例

var marker = new google.maps.Marker({ 
    position: pos, 
    map: map, 
    title:"Event Location!" 
}); 

google.maps.event.addListener(marker, 'click', function() { 
    infowindow.open(map,marker); 
}); 

var marker1 = new google.maps.Marker({ 
    position: pos1, 
    map: map, 
    title:"New Location!" 
}); 

google.maps.event.addListener(marker1, 'click', function() { 
    infowindow.open(map,marker1); 
}); 

marker.setMap(map); 
marker1.setMap(map); 
+0

map和myOptions的值对于两个标记是否相同? – upender 2012-03-28 05:58:51

+0

是的。正如你所说的“两个位置与标记在同一张地图上”:) – Diode 2012-03-28 06:01:12

+0

但它不工作,它给了我错误“控制台(15022):未捕获的错误:无效值属性:(28.6048506,77.36979930000007)http:// maps .gstatic.com/intl/en_us/mapfiles/api-3/8/5/main.js:1 “ – upender 2012-03-28 06:04:42

0

写用于显示第二标记,即代码如果u具有LAT长POS1创建一个标记,并且在同一地图上显示它。如果客户端浏览器具有合理的处理能力,则几乎不需要毫秒来显示secod标记

+0

地图上只显示一个标记。 – upender 2012-03-28 06:26:58