Javascript 谷歌地图-ajax更新图标
我有一个在地图上绘制地图的脚本,一旦绘制了地图,我的脚本就会执行ajax请求以获取图标,希望用新的标记图标更新地图 这就是我到目前为止所做的:Javascript 谷歌地图-ajax更新图标,javascript,php,ajax,function,google-maps-api-3,Javascript,Php,Ajax,Function,Google Maps Api 3,我有一个在地图上绘制地图的脚本,一旦绘制了地图,我的脚本就会执行ajax请求以获取图标,希望用新的标记图标更新地图 这就是我到目前为止所做的: for( i = 0; i < markers.length; i++ ) { var position = new google.maps.LatLng(markers[i][1], markers[i][2]); bounds.extend(position); $.ajax({ type: 'GET', ur
for( i = 0; i < markers.length; i++ ) {
var position = new google.maps.LatLng(markers[i][1], markers[i][2]);
bounds.extend(position);
$.ajax({
type: 'GET',
url: 'http://localhost/new/cqc/get_rating.php',
data: 'location_id=<?php echo $row['location_id']; ?>',
async: false,
success: function (response) {
icons=[response];
}
});
marker = new google.maps.Marker({
position: position,
scaledSize : new google.maps.Size(10,10),
map: map,
draggable: true,
title: markers[i][0],
icon: icons[i][0]
});
for(i=0;i
这不起作用,图标不会出现
亲切问候这很容易。您只需修复代码的定位 以下是我是如何做到这一点的: 首先,我确保声明了所有必要的变量。我已经为
标记提供了数组内容,以便在加载映射后可以使用它。然后我添加了数组图标
,以供以后使用,并添加了映射
变量来处理映射类
var icons = [];
var markers = [
['Chicago', 41.878114,-87.629798],
['Detroit', 42.331427,-83.045754],
['Kansas', 39.099727,-94.578567],
['Des Moines', 41.600545,-93.609106],
['Colorado Springs', 38.833882,-104.821363],
['Nashville', 36.162664,-86.781602],
['Indianapolis', 39.768403,-86.158068],
['Lexington', 38.040584,-84.503716],
];
接下来,我开始绘制地图:(这个例子以芝加哥为中心)
地图现在必须显示在页面上。之后,我们将运行ajax
调用,该调用用于填充图标
数组。(我不确定你的ajax
代码是否有效,因为我无法测试它)
填充图标
数组后,现在可以继续循环。在循环中,必须是包含图标
和创建标记的函数的变量(在此代码中,我已将标记函数分隔开):
现在应该可以了!请检查此项以查看实际的代码。(不要忘记阅读注释以更好地了解我所做的工作!)是的,在ajax调用中调用marker内部成功。请您详细说明一下。对不起,删除图标变量的'var'关键字。不-没有运气
function initMap() {
var location = new google.maps.LatLng(latlng.lat, latlng.lng)
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 41.878114, lng: -87.629798},
zoom: 5
});
$.ajax({
type: 'GET',
url: 'http://localhost/new/cqc/get_rating.php',
data: 'location_id=<?php echo $row["location_id"]; ?>',
async: false,
success:function(response){
icons=[response];
}
});
[
['icon1.png'],
['icon2.png'],
['icon3.png'],
['icon4.png'],
['icon5.png'],
['icon6.png'],
['icon7.png'],
['icon8.png']
];
for( var i=0; i < markers.length; i++){
var image = {
url: icons[i][0],
scaledSize: new google.maps.Size(50, 32)
};
create_marker({lat:markers[i][1],lng:markers[i][2]}, i, image);
}
}
function create_marker(position, i, image){
marker = new google.maps.Marker({
position: position,
map: map,
draggable: true,
title: markers[i][0],
icon: image
});
}