当前位置: 首页 > 知识库问答 >
问题:

为列表中的每个lat,lng创建一个标记谷歌地图

堵远航
2023-03-14

它会影响地图加载的速度吗??当一次加载一堆标记时!

JS功能:

            var locationObj;
    var historyObj;



    function setMap(locationList) {
      // List of Lat,Lng
        locationObj = $.parseJSON(locationList);
        //Looping through the Object 
      for (i in locationObj) {
          var LatLngPair = new google.maps.LatLng(locationObj[i]["Lat"], locationObj[i]["Lng"]);

          // Getting the Lat,Lng frmo the object
          var hItem = locationObj[i];
          var qLat = parseFloat(hItem["Lat"]);
          var qLong = parseFloat(hItem["Lng"]);


          var qMapTypeId = google.maps.MapTypeId.SATELLITE


          var myLatlng;
          if (qLat != 0 && qLong != 0) {
             myLatlng = new google.maps.LatLng(qLat, qLong);
              mapOptions = {
                  zoom: 1,
                  center: myLatlng,
                  mapTypeControl: true,
                  mapTypeControlOptions: {
                      style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
                  }
              }


              map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);



              map.setTilt(45);
              map.setHeading(0);
              map.setMapTypeId(qMapTypeId);

             var marker = new google.maps.Marker({
                  position: myLatlng,
                  map: map

              });

                google.maps.event.addListener(marker, "click", function (event) {

                });
              }

        }
        $("#map-canvas").show();
        $("#divLoadingMessageMap").css("display", "none");
  }

共有1个答案

锺离卓
2023-03-14
function setMap(locationList) {
    locationObj = $.parseJSON(locationList);
    var qMapTypeId = google.maps.MapTypeId.SATELLITE

    mapOptions = {
        zoom: 1,
        center: myLatlng,  // this line won't work yet
        mapTypeControl: true,
        mapTypeControlOptions: {
            style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
        }
    }


    map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);

    map.setTilt(45);
    map.setHeading(0);
    map.setMapTypeId(qMapTypeId);

    for (i in locationObj) {
        var LatLngPair = new google.maps.LatLng(locationObj[i]["Lat"], locationObj[i]["Lng"]);

        var hItem = locationObj[i];
        var qLat = parseFloat(hItem["Lat"]);
        var qLong = parseFloat(hItem["Lng"]);

        var myLatlng;
        if (qLat != 0 && qLong != 0) {
            myLatlng = new google.maps.LatLng(qLat, qLong);


            var marker = new google.maps.Marker({
                position: myLatlng,
                map: map
            });

            google.maps.event.addListener(marker, "click", function(event) {

            });
        }

    }
    $("#map-canvas").show();
    $("#divLoadingMessageMap").css("display", "none");
}
 类似资料:
  • 我有谷歌地图搜索框,当我搜索特定的地方时,我想用(lat,lng)访问标记位置,当我通过拖放标记时,我可以准确地访问位置 但我希望在搜索完成时获得标记位置,而不使用&

  • 我使用“google-maps-react”,并尝试通过点击向我的地图添加新的标记。 目前,我可以通过控制台记录特定的latLng,但似乎无法创建新的LATLING。我还没反应过来。 我的onMapClick用于查找纬度和经度。但我认为我需要将位置添加到数组中,然后使用该位置更新地图。可能是错的 Im目前的解决方案是,我只是在我的 render() 中硬编码了一些标记,数组的位置在 Marker

  • 正在尝试使用sql db中的lat/long坐标移动间隔上的标记/映射。 在moveMarkerMap()中设置新的google.maps.LatLng(14,41)将移动它,返回的数据显示在alert()中,但与moveMarkerMap()一起使用时,标记不会移动 从ajax返回的字符串是正确的格式;(9.624672,7.242244)如警报()所示,所以不确定为什么它不工作。

  • 我知道周围也有类似的问题,但我无法找到一个可靠的答案,这是我的问题:有没有什么方法可以在没有谷歌地图引用的情况下将标记存储在ArrayList(或任何其他存储)中,然后简单地将它们添加到我的地图中? 背景:我有一个应用程序,目前有大约3500个标记。每个标记还有一个与之相关联的数据(布尔数组存储每个标记的数据,用于根据用户交互使它们可见/不可见)。目前,我使用扩展AsyncTask的类来获取这些标

  • 我有一个数据框,其中一些单元格包含多个值的列表。我不想在一个单元格中存储多个值,而是希望扩展dataframe,以便列表中的每个项都有自己的行(在所有其他列中都有相同的值)。因此,如果我有: 如何转换为长格式,例如: 索引并不重要,可以将现有列设置为索引,而最终的顺序并不重要。

  • 我正在谷歌地图上工作,我试图添加标记到谷歌地图,然后试图删除它,但现在我已经完成了添加和删除下面的代码 但是现在有一个问题,我应该如何设置标记的值。推(标记),因为我删除了一个标记,所以它的值必须小于预期存储的值。。有人能帮忙吗