将字符串转换为Google地图的网址

时间:2017-09-24 22:23:36

标签: javascript jquery google-maps gmaps.js

我正在研究一个简单的项目,试图找出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();
});

0 个答案:

没有答案