Google maps 通过提供地址在google地图上显示多个标记
我有下面的脚本来使用google maps API,我必须创建一个具有多个标记(指向某物的气球状图标)的地图,并且我需要每个标记指向地图的不同区域(即不同的坐标),我该怎么做? 注意:我没有必须放置标记的区域的纬度和经度,而是必须放置标记的区域的地址 下面给出了在谷歌地图上显示多个标记的代码,但它没有按预期工作Google maps 通过提供地址在google地图上显示多个标记,google-maps,maps,google-maps-markers,google-maps-api-2,Google Maps,Maps,Google Maps Markers,Google Maps Api 2,我有下面的脚本来使用google maps API,我必须创建一个具有多个标记(指向某物的气球状图标)的地图,并且我需要每个标记指向地图的不同区域(即不同的坐标),我该怎么做? 注意:我没有必须放置标记的区域的纬度和经度,而是必须放置标记的区域的地址 下面给出了在谷歌地图上显示多个标记的代码,但它没有按预期工作 var map = null; var geocoder = null; function initializeNew() { var allAddress = documen
var map = null;
var geocoder = null;
function initializeNew() {
var allAddress = document.getElementById("HiddenField1").value;
var testary = new Array();
testary = allAddress.split("|");
if (GBrowserIsCompatible()) {
//calls map to appear inside <div> with id, "map_canvas"
map = new GMap2(document.getElementById("map_canvas"));
//adds zoom and arrow controls to map
//map.addControl(new GSmallMapControl());
var marker = null;
var i = 0;
for (i = 0; i < testary.length; i++) {
address = testary[i];
geocoder = new GClientGeocoder();
//converts a street address into geocode for the api
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert(address + " not found");
} else {
map.setCenter(point, 13);
marker = new GMarker(point);
map.addOverlay(marker);
map.setMapType(G_HYBRID_MAP);
//adds your own marker title and description in html
marker.openInfoWindowHtml("<p class='para1bold' style=\"font-weight: bold;\">Address</p><p class='para1'>" + address + "</p>");
//Add click event on push pin to open info window on click of the icon
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml("<p class='para1bold' style=\"font-weight: bold;\">Address</p><p class='para1'>" + address + "</p>");
});
//Provides map,satellite,hybrid and terrain views in the map along with zoom control
map.setUIToDefault();
}
}
)
}
}
}
var-map=null;
var-geocoder=null;
函数initializeNew(){
var allAddress=document.getElementById(“HiddenField1”).value;
var testary=新数组();
testary=allAddress.split(“|”);
if(GBrowserIsCompatible()){
//调用map以显示在id为“map\u canvas”的内部
map=newgmap2(document.getElementById(“map_canvas”);
//向地图添加缩放和箭头控件
//addControl(新的gsmallmappcontrol());
var-marker=null;
var i=0;
对于(i=0;iAddress“+Address+”
”;
//在图钉上添加点击事件,点击图标打开信息窗口
addListener(标记“单击”,函数(){
marker.openInfoWindowHtml(“Address
“+Address+”
”;
});
//在地图中提供地图、卫星、混合和地形视图以及缩放控制
map.setUIToDefault();
}
}
)
}
}
}
我已将一组项目的地址存储在一个数组中,并循环以在地图中显示标记。这仅显示阵列中最后一个地址的一个标记。请更正此代码或提供新代码,通过提供地址在Google地图中显示多个标记。尝试以下操作:将
var
放在标记前面
else {
map.setCenter(point, 13);
var marker = new GMarker(point);
map.addOverlay(marker);
map.setMapType(G_HYBRID_MAP);
//adds your own marker title and description in html
marker.openInfoWindowHtml("<p class='para1bold' style=\"font-weight: bold;\">Address</p><p class='para1'>" + address + "</p>");
//Add click event on push pin to open info window on click of the icon
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml("<p class='para1bold' style=\"font-weight: bold;\">Address</p><p class='para1'>" + address + "</p>");
});
else{
地图设定中心(点13);
var标记=新的GMarker(点);
添加覆盖图(标记);
setMapType(G_HYBRID_map);
//在html中添加您自己的标记标题和说明
marker.openInfoWindowHtml(“Address
“+Address+”
”;
//在图钉上添加点击事件,点击图标打开信息窗口
addListener(标记“单击”,函数(){
marker.openInfoWindowHtml(“Address
“+Address+”
”;
});
更新
var geocoder = new GClientGeocoder();
var addresses = ["new york","chicago"];
var curIndex = 0;
function showAddress() {
var _cur = addresses[curIndex];
geocoder.getLatLng(
_cur,
function(point) {
if (!point) {
alert(_cur + " not found");
} else {
console.log(_cur+":"+point);
}
//do next after done
curIndex++;
if(curIndex<addresses.length)
showAddress();
}
);
}
showAddress();
</script>
var geocoder=new GClientGeocoder();
var地址=[“纽约”、“芝加哥”];
var-curIndex=0;
函数showAddress(){
var_cur=地址[curIndex];
geocoder.getLatLng(
_cur,
功能(点){
如果(!点){
警报(_cur+“未找到”);
}否则{
console.log(_cur+“:“+点);
}
//做完后做下一步
curIndex++;
如果(curIndex我遇到了完全相同的问题。看看我使用的代码。具体的位是,标记需要是一个数组,当你打开信息窗口时,内容需要存储在标记数组中。我还建议你使用JSON,它更容易解析,而不是用“|”分隔。)您是否尝试打印地理编码的结果?所有不同的lat&lng?当我打印geocoder.getLatLng方法的else部分中的地址变量(数组中的项)时,它会显示数组中的最后一项(最后一个地址)。我认为它在谷歌地图的同一位置显示了多个标记!!任何人都可以指导我更正代码!可能您提供给谷歌地理编码网站服务的地址太相似,这可能导致相同的lat-long结果。您是否尝试打印地理编码的结果?所有不同的lat&lng?所有纬度和长度数组中地址的大小被正确打印…我认为在创建标记时存在一些问题!当我在geocoder.getLatLng方法的else部分打印地址变量(数组中的项)时,它会显示数组中的最后一项(最后一个地址)。我认为它在谷歌地图的同一位置显示了多个标记!!任何人都可以指导我更正代码!因为geocoder.getLatLng是请求/响应函数,类似于xmlHttprequest。您需要等待请求完成后再发送另一个。我将更新我的答案。希望有帮助