Javascript 获取标记';s通过标记的位置';姓名

Javascript 获取标记';s通过标记的位置';姓名,javascript,google-maps,Javascript,Google Maps,如何获取var-ble=new google.maps.Marker位置?我试过ble.getPosition().lat()但它不起作用,我想我没有命名标记并正确调用它 var map = new google.maps.Map(document.getElementById('map'), { zoom: 8, center: new google.maps.LatLng(55.580622, 23.104248), mapTypeId: googl

如何获取
var-ble=new google.maps.Marker
位置?我试过
ble.getPosition().lat()但它不起作用,我想我没有命名标记并正确调用它

   var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 8,
      center: new google.maps.LatLng(55.580622, 23.104248),
      mapTypeId: google.maps.MapTypeId.HYBRID 
    });


var london = new google.maps.LatLng(56, 22);
    var MyApp = {};

function HomeControl(controlDiv, map) {
  controlDiv.style.padding = '5px';
  var controlUI = document.createElement('div');
  controlUI.appendChild(controlText);

  google.maps.event.addDomListener(controlUI, 'click', function() {
        window.blia = new google.maps.Marker({
        position: london,
        draggable:true,
        map: map,
      });
  });
}

var aa = blia.getPosition();

  var homeControlDiv = document.createElement('div');
  var homeControl = new HomeControl(homeControlDiv, map);
  map.controls[google.maps.ControlPosition.TOP_RIGHT].push(homeControlDiv);

    var directionsService = new google.maps.DirectionsService();
var directionsDisplay = new google.maps.DirectionsRenderer();

    var infowindow = new google.maps.InfoWindow();

    var marker, i;

    for (i = 0; i < locations.length; i++) {  
      marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][1], locations[i][2]),
        map: map,
        icon: 'peace.png'
      });

      google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
          MyApp.xxx = this.position;
          alert(aa);
          infowindow.setContent('x' + name[i][3] + '' + name[i][4] + 'x');
          infowindow.open(map, marker);

        var request = {
         origin: MyApp.xxx, 
         destination: MyApp.posit,
         travelMode: google.maps.DirectionsTravelMode.DRIVING
     };

        directionsService.route(request, function(response, status) {
        if (status == google.maps.DirectionsStatus.OK) {
         directionsDisplay.setDirections(response);
       }
       })

        }
      })(marker, i));
    }
directionsDisplay.setMap(map);
var map=new google.maps.map(document.getElementById('map'){
缩放:8,
中心:新google.maps.LatLng(55.58062223.104248),
mapTypeId:google.maps.mapTypeId.HYBRID
});
var london=newgoogle.maps.LatLng(56,22);
var MyApp={};
功能HomeControl(controlDiv、map){
controlDiv.style.padding='5px';
var controlUI=document.createElement('div');
controlUI.appendChild(controlText);
google.maps.event.addDomListener(controlUI,'click',function(){
window.blia=new google.maps.Marker({
职位:伦敦,
真的,
地图:地图,
});
});
}
var aa=blia.getPosition();
var homeControlDiv=document.createElement('div');
var homeControl=新的homeControl(homeControlDiv,map);
map.controls[google.maps.ControlPosition.TOP\u RIGHT].push(homeControlDiv);
var directionsService=new google.maps.directionsService();
var directionsDisplay=new google.maps.DirectionsRenderer();
var infowindow=new google.maps.infowindow();
var标记,i;
对于(i=0;i
如果我们对HomeControl功能进行一些更改,它应该可以工作:

function HomeControl(controlDiv, map) { 
  controlDiv.style.padding = '5px'; 
  var controlUI = document.createElement('div'); 
  controlDiv.appendChild(controlUI); 

  var controlText = document.createElement('div'); 
  controlText.innerHTML = '<strong>Trigger</strong>'; 
  controlUI.appendChild(controlText);  

  google.maps.event.addDomListener(controlUI, 'click', function() { 
    MyApp.defaultmarker = new google.maps.Marker({ 
      position: map.getCenter(), 
      draggable:true, 
      map: map 
    }); 
  });
}
函数HomeControl(controlDiv,map){
controlDiv.style.padding='5px';
var controlUI=document.createElement('div');
controlDiv.appendChild(controlUI);
var controlText=document.createElement('div');
controlText.innerHTML='触发器';
controlUI.appendChild(controlText);
google.maps.event.addDomListener(controlUI,'click',function(){
MyApp.defaultmarker=新的google.maps.Marker({
位置:map.getCenter(),
真的,
地图:地图
}); 
});
}
  • 所有html元素都需要附加到controlDiv中传递的元素
  • 变量london没有设置在函数中,因此我们可能应该将标记放在地图的中心
  • 将新标记添加到全局MyApp中,以便在单击按钮后可用

删除这一行,
var aa=blia.getPosition()因为blia在单击控件之前不会被设置(在新代码的情况下,它是MyApp.defaultmarker),您应该会没事。

ble是一个局部变量,所以您不能在创建标记的匿名函数之外引用它。好吧,但是我调用标记对象的方法是“好”的吗?那我怎么才能得到它呢?我试过这样做:设置全局var
var MyApp={}
MyApp.ble=new google.maps.Marker
var aa=MyApp.ble.getPosition().lat()
是,假设变量
london
包含
LatLang
,并且
map
包含对google map的引用。如果它不起作用,您可以发布所有代码吗?我尝试在函数外创建相同的对象,所以它现在起作用了,但我仍然不知道如何获取函数内的变量。