0

我是谷歌地图的新手。我正在尝试制作一张使用 KmlLayer 显示整个美国销售区域的地图。这部分是成功的。

我现在想将所有 Home Depot 显示为标记,以便理论上您可以访问地图,查看您的领土并查看您所在地区的所有 Home Depot。

这是我到目前为止所拥有的:

$(document).ready(function() {
    var map, geocoder;

    init();

    $('.showVendors').click(function() {
        loadKML();
        showVendors();
    });
});

function init() {
    var myOptions = {
        center: new google.maps.LatLng(37.09024,-95.712891),
        zoom: 3,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    map = new google.maps.Map(document.getElementById('map'), myOptions);
    geocoder = new google.maps.Geocoder();
}

function loadKML() {
    var kmlOptions = {
        clickable: true,
        map: map,
        preserveViewport: true,
        suppressInfoWindows: false
    }
    var kmlLayer = new google.maps.KmlLayer('kml/territories.kml', kmlOptions);

}

function showVendors() {
    var vendor = 'Home Depot';
    geocoder.geocode( { 'premise' : vendor }, function(results, status) {
        if ( status == google.maps.GeocoderStatus.OK ) {
            map.setCenter(results[1].geometry.location);
            var marker = new google.maps.Marker({
                map: map,
                position: results[1].geometry.location
            });
        } else {
            alert ( "Geocode was unsuccessful for the following reason: " + status );
        }
    });
}
4

1 回答 1

1

当我直接通过 API 运行您的查询时:

http://maps.googleapis.com/maps/api/geocode/json?premise=Home%20Depot&sensor=true

我得到:

{
   "results" : [],
   "status" : "ZERO_RESULTS"
}

看起来此信息在地理编码 API 中不可用,这是您在上面使用的代码。使用places API 会有更好的运气,但它仍然是实验性的:

https://developers.google.com/maps/documentation/places/

于 2012-04-27T22:13:31.480 回答