我正在研究一个简单的项目,试图找出HTML5的GMaps.js API的不同部分。
目前我有一张地图,其中填充了一系列地点,我为每个位置设置了信息窗口,显示了该地点的名称,地址和电话号码。
目前我正在尝试进行设置,以便信息窗口还包含指向特定位置的Google地图页面的直接链接。我试图通过解析包含地点名称的字符串并将其添加到https://www.google.maps.com/maps/place/<location name>
现在我的'解析'老实说只是用+
符号替换空格。因此,Eastwood Arena
之类的名称会变为Eastwood+Arena
的URL。我的问题出现在我遇到名称有&amp;,(,或)等特殊字符时。在这些情况下,谷歌地图页面正在加载,但它只是加载到一个随机位置而不加载我正在寻找的实际位置。
为我正在尝试设置的用途解析字符串的正确方法是什么?我似乎无法找到这个问题的好答案。如果解析不是我的问题,这是我的javascript / jquery代码:
var map;
function generateMarker(markerInfo) {
addressURL = markerInfo["address"].split(' ').join('+');
addressURL += ',+'+markerInfo["city"].split(' ').join('+');
placeURL = markerInfo["name"].split(' ').join('+');
googleURL = "https://www.google.com/maps/place/"+placeURL;
xmlURL = "https://maps.googleapis.com/maps/api/geocode/xml?address="+addressURL;
infoWindowString = '<p>'+markerInfo["name"]+
'</br>'+markerInfo["address"]+
'</br>'+markerInfo["city"]+
' '+markerInfo["phone"]+
'</br>'+'<a href="'+googleURL+'">Google Maps</a>'+
' '+'<a href="'+xmlURL+'">Lat/Long XML</a></p>';
map.addMarker({
lat: markerInfo["latitude"],
lng: markerInfo["longtitude"],
infoWindow: {
content: infoWindowString
}
});
console.log(infoWindowString);
}
$(document).ready(function(){
latitude = 43.243603 ;
longitude = -79.889075;
map = new GMaps({div: '#map',lat: latitude,lng: longitude });
for (var i = 0; i < listRecs.length; i++) {
generateMarker(listRecs[i]);
}
map.fitZoom();
});