将多个标记放在数组中的谷歌地图上 [英] placing multiple markers on google map from array

查看:209
本文介绍了将多个标记放在数组中的谷歌地图上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在数组中提供的地图上放置多个标记。现在只有我的初始点加载(NYC)。

I'm trying to place multiple markers on a map that are provided from an array. Right now only my initial point loads (NYC).

var geocoder;
var map;
var markersArray = [];

//plot initial point using geocode instead of coordinates (works just fine)
  function initialize() {
    geocoder = new google.maps.Geocoder();
     latlang = geocoder.geocode( { 'address': 'New York City'}, function(results, status) { //use latlang to enter city instead of coordinates 
            if (status == google.maps.GeocoderStatus.OK) {
                map.setCenter(results[0].geometry.location);
                marker = new google.maps.Marker({
                map: map,
                position: results[0].geometry.location
                });
            markersArray.push(marker);
            }
            else{
            alert("Geocode was not successful for the following reason: " + status);
            }
        });
    var myOptions = {
        center: latlang, zoom: 5, mapTypeId: google.maps.MapTypeId.SATELLITE,
        navigationControlOptions: {
            style: google.maps.NavigationControlStyle.SMALL
        }
    };
     map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);

  }

///////////////////////////////////////////////////////////
//Everything below this line is for attempting to plot the markers

  var locationsArray = ['Pittsburgh','Chicago', 'Atlanta'];

  function plotMarkers(){
for(var i = 0; i < locationsArray.length; i++){
  codeAddresses(locationsArray[i]);
}
  }

  function codeAddresses(address){
    geocoder.geocode( { 'address': address}, function(results, status) { 
            if (status == google.maps.GeocoderStatus.OK) {
                map.setCenter(results[0].geometry.location);
                marker = new google.maps.Marker({
                map: map,
                position: results[0].geometry.location
                });
            //markersArray.push(marker); 
            }
            else{
            alert("Geocode was not successful for the following reason: " + status);
            }
  });
  }


推荐答案

plotMarkers 上面的代码段中的任何地方!当我添加到初始化结束时(在定义地图之后)它很好用! http://jsfiddle.net/T5aKE/

You're not actually calling plotMarkers anywhere in the snippet above! When I added into the end of initialize (after map is defined) it works great! http://jsfiddle.net/T5aKE/

       ...
         map = new google.maps.Map...
         plotMarkers();
       ...

这篇关于将多个标记放在数组中的谷歌地图上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆