2013-02-10 43 views
0

我想对于“谷歌地图标记分组”教程中:“标记没有定义”切换功能项(GMaps API第3版)

Google Maps marker grouping

为了使标记可见一种无形的我用以下功能:

function displayMarkers(category) { 
    var i; 

for (i = 0; i < markers.length; i++) { 
    if (markers[i].category == category) { 
    if (markers[i].getVisible()) { 
      markers[i].setVisible(false); } 

    else { markers[i].setVisible(true); } } } 

在这里,我总是得到错误:标记未定义。

它有点像标记在函数中不可见。但是,如果函数错误,那么在关于教程的讨论中会有任何评论。 那么为什么这个错误呢? 坦克很多!

+1

请告诉markers'是如何定义'。也许你的定义失败了,或者'markers'还没有存在(异步定义),或者'markers'超出了'displayMarkers()'的范围。 – Teemu 2013-02-10 11:51:34

+0

该教程没有为我写的工作,但问题不是“标记未定义”。 [固定版本](http://www.geocodezip.com/v3_SO_toggleCategories.html) - [使用displayMarkers函数的版本](http://www.geocodezip.com/v3_SO_toggleCategoriesA.html) – geocodezip 2013-02-10 16:17:16

回答

-1

这是整个代码:

function initialize(){ 

    var deutschland = new google.maps.LatLng(51,9); 

    var mapOptions = { zoom: 6, 
        center: deutschland, 
        streetViewControl: true, 
        scaleControl: true, 
        mapTypeControl: true, 
        mapTypeId: google.maps.MapTypeId.ROADMAP }; 

    var map = new google.maps.Map(document.getElementById("map-container"),mapOptions); 
    var beaches = [ 
['Bondi Beach', 51, 9, 1], 
['Coogee Beach', 52, 9, 1], 
['Cronulla Beach', 51, 8, 2], 
['Manly Beach',51.5, 9, 2], 
['Maroubra Beach',52.5, 10, 2] 
    ]; 

var markers = []; 
var i, newMarker; 

for (i = 0; i < beaches.length; i++) { 
    newMarker = new google.maps.Marker({ 
    position: new google.maps.LatLng(beaches[i][1], beaches[i][2]), 
    map: map, 
    title: beaches[i][0] 
    }); 

newMarker.category = beaches[i][3]; 
newMarker.setVisible(true); 

markers.push(newMarker); 
} 

} 

function displayMarkers(category) { 
    var i; 

for (i = 0; i < markers.length; i++) { 
    if (markers[i].category == category) { 
    if (markers[i].getVisible()) { 
      markers[i].setVisible(false); } 

    else { markers[i].setVisible(true); } } } 

    } 

和:

<input type="button" value="Show Group 1" onclick="displayMarkers(1);"/> 
    <input type="button" value="Show Group 2" onclick="displayMarkers(2);"/> 
+1

删除此var -keyword行:'var markers = [];'使数组全局可访问 – 2013-02-10 23:04:14

+0

@ user1953346 - 你的帖子在这里不是一个答案。用所有这些代码更新您的原始问题。 – duncan 2013-02-11 10:02:12

+0

根据你的建议,我尝试编辑文本(菜单:共享/编辑/删除...),但它没有工作? – user1953346 2013-02-11 22:01:45