【问题标题】:Print multiply markers on Google Maps with JavaScript使用 JavaScript 在 Google 地图上打印多个标记
【发布时间】:2013-01-29 15:29:47
【问题描述】:

我尝试在 google map(v3) 上打印乘法标记。我对一般记录使用集群和蓝色标记。商店位置的红色标记。我的代码如下:

function initialize(){

          //some code here
      //....
          //....

    var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);

    var markers = [];

    for (var i = 0; i < <?= $total_records ?>; i++) {
       var latLng = new google.maps.LatLng(geo_data.records[i].lat, geo_data.records[i].lng);
       var marker = new google.maps.Marker({
                                           position: latLng,
                                           draggable: true,
                                           icon: markerImage
                                         });
       markers.push(marker);
    }

    var imageUrl2 = 'http://chart.apis.google.com/chart?cht=mm&chs=24x32&chco=AAAAA,008CFF,000000&ext=.png';
    var markerImage2 = new google.maps.MarkerImage(imageUrl2,new google.maps.Size(24, 32));     
    for (var i = 0; i < <?= $store_records ?>; i++) {
       var latLng = new google.maps.LatLng(store_data.storeRecords[i].lat, store_data.storeRecords[i].lng);
       var marker = new google.maps.Marker({
                                           position: latLng,
                                           draggable: true,
                                           icon: markerImage2
                                         });
       markers.push(marker);
    }


    var zoom = 14;
    var size = 60;

    var markerClusterer = new MarkerClusterer(map, markers, {
                                              maxZoom: zoom,
                                              gridSize: size
                                             });

}

但是现在我遇到了两个有线错误:

  1. 未捕获的 SyntaxError:意外的标识符 jquery-1.5.1.min.js:16

  2. 未捕获的引用错误:未定义初始化

我认为问题在于我不能两次使用 Marker 类的函数,但我不确定。谁能告诉我如何解决这个问题?

【问题讨论】:

    标签: javascript google-maps-api-3


    【解决方案1】:

    嗯。 jQuery 现在是 v1.9.0,所以我可能会从使用更新版本的 jQuery 开始。您可以根据需要在性能允许的情况下初始化任意数量的标记。

    我注意到您使用的是 document.getElementId 而不是 jQuery 选择器。您的页面中是否需要 jQuery?您是否已将行注释掉以找出导致每个错误的原因?

    【讨论】:

      【解决方案2】:

      对于#1,由于您的代码中没有初始化对象或方法,我不得不假设错误来自您应用程序的另一部分。这个方法是从哪里调用的?您可以在调试工具中“中断所有错误”来查看。您是否可能复制并粘贴了一些具有 onload 事件初始化程序的代码?寻找这样的东西:

      <body onload="initialize()">
      

      至于#2,似乎有a similar bug in the jQuery validation library

      【讨论】:

        【解决方案3】:

        Prueba esto(试试这个)

        HTML 文件

        ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js
        maps.google.com/maps/api/js?sensor=false&language=es
        google-maps-utility-library-v3.googlecode.com/svn/tags/markermanager/1.0/src/markermanager.js
        google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer_compiled.js
        

        JS 文件

        ...onload....
        .
        .
        var markers = [];
        .
        .
        /* esto hace el truco */
        var marcador = new google.maps.Marker({
        position: new google.maps.LatLng(lat, lng),
        map: map,
        title: sede,
        enter code here`icon: 'https://chart.googleapis.com/chart?chst=d_bubble_text_small&chld=bb|'+num+'|FFFF00|000000',
        });
        markers.push(marcador);
        
        var markerclusterer = new MarkerClusterer(map, markers, { zoomOnClick: true });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-26
          • 2021-02-06
          • 1970-01-01
          • 2014-08-24
          • 2013-09-20
          相关资源
          最近更新 更多