只为Google地图中的一个元素获取

时间:2013-03-11 14:26:27

标签: javascript jquery google-maps

我使用其Javascript API将以下内容用于Google地图:

# HTML markup
<div id="#city_123">
  <div class="map"></div>
</div>

# calling function
marker("#city_123 .map"); // There is only one .map

# marker() function
function marker(shop) {
  var map;
  var mapOptions = {
    zoom: 15,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  $(shop).each(function(index) {  
    map = new google.maps.Map(this, mapOptions);

    var marker = new google.maps.Marker({
      position: new google.maps.LatLng($(this).data("lat"), $(this).data("lng")),
      map: map,
    });

    map.setCenter(marker.getPosition());

  });
}

我尝试了多种方法来移除.each,因为没有必要。我只有一个.map。我必须使用.map类是有原因的,因为它实际上是动态创建的,但除此之外。

我怎样才能将其重写为友好的?

感谢。

1 个答案:

答案 0 :(得分:1)

试试这个:

JS

function marker(shop) {
    var map;
    var mapOptions = {
        zoom: 15,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map($(shop)[0], mapOptions);
    var marker = new google.maps.Marker({
        position: new google.maps.LatLng($(shop).data("lat"), $(shop).data("lng")),
        map: map,
    });
    map.setCenter(marker.getPosition());
}