将静态标记添加到Google商家信息搜索

时间:2011-07-11 22:40:04

标签: javascript google-maps google-maps-api-3

我发现了Google Maps API Places Search的这个例子,我非常喜欢。 - Places Search我想添加的另一件事是特定Lat / Lng的静态标记,这样当搜索结果给出时,他们可以看到从静态位置到搜索结果的关系。我知道如何添加标记...似乎没有加载此代码。任何关于如何做到这一点的想法将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不确定你想要什么,但也许你可以使用directionsService。

全局变量:

var directionDisplay;
var directionsService = new google.maps.DirectionsService();
var startLocation;
var markerStart;

在函数initialize()中:

directionsDisplay = new google.maps.DirectionsRenderer();
directionsDisplay.setMap(map);

google.maps.event.addListener(map, 'click', function(event) {
    mapZoom = map.getZoom();
    startLocation = event.latLng;
    setTimeout("placeMarkerStart()", 600);
});

更多的全球员工:

function placeMarkerStart() {
    if(mapZoom == map.getZoom()){
        markerStart = new google.maps.Marker({
            position: startLocation,
            map: map,
            title: "start"
        });
    }
}

function calcRoute(num) {
    var request = {
        origin: markerStart.getPosition(),
        destination: markers[num].getPosition(),
        travelMode: google.maps.TravelMode.DRIVING
    };
    directionsService.route(request, function(result, status) {
        if (status == google.maps.DirectionsStatus.OK) {
            directionsDisplay.setDirections(result);
        }
    });
}

如果你想测试一下,你可以添加:

<div id="locationField">
    ...
    <input type="button" onclick="calcRoute(0);" id="start" value="0"/>
    <input type="button" onclick="calcRoute(1);" id="start" value="1"/>
    <input type="button" onclick="calcRoute(2);" id="start" value="2"/>
</div>

...并更改地图的位置:

#map_canvas {
  position: absolute;
  width: 399px;
  height: 399px;
  top: 55px;
  left: 0px;
  border: 1px solid grey;
}

这只是一个想法,并不完美,但你可以重建这个,如果你喜欢这个。