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