2013-03-30 132 views
2

我正在嘗試創建一個簡單的Google Maps API,允許最終用戶在地圖上添加一些標記。Google Maps |我無法在地圖上添加多個標記

問題是,儘管我可以在programmaticaly級別添加標記,但標記在地圖上不會變形。

這是一個在地圖上添加標記代碼:

for(var i = 0; i < points.length; i++) 
{ 
    var markerLatLng = new google.maps.LatLng(points[i].lat(), points[i].lng()); 
    var marker   = new google.maps.Marker(
     { 
      position  : markerLatLng, 
      map    : map, 
      zIndex   : (10000 + i), 
      icon   : { 
       url   : 'http://www.saronikoscity.gr/site/images/ico_web.gif', 
       size  : new google.maps.Size(16, 16, 'px', 'px') 
      } 
     } 
    ); 

    markerRegistry.push(marker); 
} 

在這裏你可以看到我是什麼意思一個活生生的例子:http://jsfiddle.net/merianos/n4wjw/

什麼可以錯嗎?你看到有什麼不對嗎?

注意:我試圖在我的地圖上添加一個標記,在這種情況下,它正常工作。這個問題伴隨着多個標記。

親切的問候

+1

在你的例子中,你定義了$(document).ready(function(){---})中的函數......它的錯誤。也沒有爲變量設置值 – Arvind

+0

Oop !!!我不知道。無論如何,你是否認爲這會傷害我的劇本? –

+1

您希望獲得您的代碼。但這不是一般定義函數的地方。 – Arvind

回答

2

你簡單地定義var map兩次,檢查here的工作示例。

+0

非常感謝您的幫助! :) –

0

此代碼對我的作品

var markers = [ 
    ['Bondi Beach', -33.890542, 151.274856], 
    ['Coogee Beach', -33.923036, 151.259052], 
    ['Cronulla Beach', -34.028249, 151.157507], 
    ['Manly Beach', -33.80010128657071, 151.28747820854187], 
    ['Maroubra Beach', -33.950198, 151.259302] 
]; 


function initializeMaps() { 
    var latlng = new google.maps.LatLng(-33.92, 151.25); 
    var myOptions = { 
     zoom: 10, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     mapTypeControl: false 
    }; 
    var map = new google.maps.Map(document.getElementById("myMap"),myOptions); 
    var infowindow = new google.maps.InfoWindow(), marker, i; 
    for (i = 0; i < markers.length; i++) { 
     marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(markers[i][1], markers[i][2]), 
      map: map 
     }); 
     google.maps.event.addListener(marker, 'click', (function(marker, i) { 
      return function() { 
       infowindow.setContent(markers[i][0]); 
       infowindow.open(map, marker); 
      } 
     })(marker, i)); 
    } 
} 

jQuery(document).ready(
    function($) 
    { 
     if($('#myMap').length > 0) 
     { 
      initializeMaps(); 
     } 
    } 
);