Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 在谷歌地图上显示多个位置标记_Google Maps_Google Maps Api 3_Logic - Fatal编程技术网

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

Google maps 在谷歌地图上显示多个位置标记,google-maps,google-maps-api-3,logic,Google Maps,Google Maps Api 3,Logic,当鼠标移到PHP MySQL上时,我们如何在google地图上openInfoWindowHtml,结果如下: 此网站在谷歌地图上显示信息窗口,同时将鼠标悬停在结果标题上 审判方式如下: //<![CDATA[ var map; var geocoder; var markerArray = []; function loadMap(params) { if (GBrowserIsCompatible()) { geocoder = new GClientGeoc

当鼠标移到PHP MySQL上时,我们如何在google地图上
openInfoWindowHtml
,结果如下:

此网站在谷歌地图上显示信息窗口,同时将鼠标悬停在结果标题上

审判方式如下:

//<![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
上的鼠标悬停应在地图上显示相应的位置信息

任何建议都将不胜感激


谢谢

你走了多远

原则上你可以

在显示自定义信息窗口的地图上放置的标记上放置标准的“单击”-事件侦听器(这里有一些不同的方法/示例:)


在侧边栏列表的li元素上为“mouseover”设置另一个侦听器,这反过来会触发click事件。(以下是如何触发谷歌地图事件:)

为什么要使用API-2?你的问号上写着API-3。如果我是你,我会调查“el_index.addEvent('mouseover',marker);”或者用类似“el_index.addEventListener('mouseover',function(){GEvent.trigger(markerary[i],'click')”)的行替换它;如您所述已尝试,但始终仅显示最后一个标记:(