在Google地图上显示多个位置标记

时间:2012-01-17 11:42:45

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

如果鼠标悬停在PHP MySQL上,我们怎么能在谷歌地图上openInfoWindowHtml得到如下结果,

http://www.yelp.com/c/denver/health

此网站在鼠标悬停在结果标题

上时显示谷歌地图上的信息窗口

尝试如下,

//<![CDATA[
var map;
var geocoder;
var markerArray = [];
function loadMap(params) {
    if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
        map = new GMap2(document.getElementById('map'));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(40, -100), 4);
        map.setZoom(8);
        searchLocationsNear(params)
    }
}

function searchLocationsNear(params) {

    var data = JSON.parse(params);
    var lenght = data.length;
    var bounds = new GLatLngBounds();
    for ( var i = 0; i < lenght; i++) {

        // check lat and long available with data
        if (data[i].enough_for_map) {
            var name = data[i].name;
            var address = data[i].address;

            if (data[i].description)
                var description = data[i].description;

            var point = new GLatLng(data[i].latitude, data[i].longitude);

            var marker = createMarker(point, name, address, description);

            map.addOverlay(marker);

            markerArray[i + 1] = marker;

            var el_index = $('service_name_' + i);

            if (el_index) {

                el_index.addEvent('mouseover', marker);

                // GEvent.addDomListener(el_index, 'mouseover', function() {
                // GEvent.trigger(markerArray[i], 'click');
                // });

            }

            bounds.extend(point);
        }
    }
    map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
}

function createMarker(point, name, address, description) {
    var marker = new GMarker(point);
    var html = '<b>' + name + '</b> <br/><p>' + description + '</p>' + address;
    GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
    });
    return marker;
}

从mysql结果集指向的地图位置上方。

<h2>
    <a id="service_name_1" href="/example/details/bookkeeper/191">Photographer</a> 
</h2>
<h2>
    <a id="service_name_2" href="/example/details/bookkeeper/192">Teacher</a> 
</h2>
<h2>
    <a id="service_name_3" href="/example/details/bookkeeper/193">Accountant</a> 
</h2>

例外结果: 虽然每个h2上的鼠标悬停应该在地图上显示相应的位置信息。

任何建议都将非常感谢

由于

1 个答案:

答案 0 :(得分:0)

你到底有多远?

原则上你可以,

在您放置在地图上的标记上放置一个标准的“点击”事件监听器,显示自定义的infoWindow(这里有一些不同的方法/示例:http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/demogallery.html)。

在sidebar-list的li元素上有另一个'mouseover'监听器,它会触发click事件。 (以下是触发谷歌地图事件的方法:http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#event

相关问题