Интеграция Google Maps API - функция Click для маркеров карты, вызывающая головную боль - PullRequest
1 голос
/ 19 июля 2010

Я «пытаюсь» заставить маркеры на моих Картах Google активироваться и отображать некоторую информацию при нажатии.

Проблема в том, что где-то по пути мои маркеры исчезли (или, по крайней мере, не отображаются), и я получаю некоторые странные предупреждения о коде, поступающем из Google, когда я проверяю точки останова с помощью Firebug ...

Довольно прямо, я следил за этой статьей: http://www.googlemapsbook.com/2007/03/06/clickable-labeledmarker/

и даже дошли до того, что почти полностью имитировали пример кода, предоставленного в попытке заставить его работать ... Все безрезультатно.

К сожалению, у меня нет живой версии, которую я могу показать вам, так как в настоящее время я делаю эту часть тестирования в автономном режиме. Но, надеюсь, следующего Pastebin будет достаточно для тех, кто имеет опыт работы с API-интерфейсом GMaps, чтобы выявить недостатки в моей логике.

http://pastebin.com/wDY3DLtA

Дайте мне знать, если вам нужна дополнительная информация.

Любая помощь в этом вопросе будет принята с благодарностью,

1 Ответ

0 голосов
/ 01 сентября 2011

Вот пример, который добавляет слушателей к маркерам и всплывает информация, когда они нажимаются.Это был мой ответ на какой-то другой вопрос: Как я могу показать информационное окно для десяти маркеров на картах Google? , но я думаю, что оно должно вам помочь.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>boats</title>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' type='text/javascript'></script>
<script type="text/javascript">
</script>
</head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var infowindow = null;
var map = null;
function initialize() {
    var washington = new google.maps.LatLng(47.7435, -122.1750);
    var myOptions = {
        zoom: 7,
        center: washington,
        mapTypeId: google.maps.MapTypeId.TERRAIN
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    google.maps.event.addListener(map, 'click', function() {
    infowindow.close();
    });
    infowindow = new google.maps.InfoWindow({ content: "loading..." });
    boats(map, seller);
}

var seller = [
['joe boat', 48.0350,-122.2570, 4, 'This is in good shape.'],
['bobs boat', 48.7435, -122.1750, 2, 'This is in bad shape.'],
['bubas boat', 47.3435, -122.1750, 1, 'This is in ok shape'],
['daveys boat', 47.7435, -122.1750, 3, 'dont buy this one.']
];

function boats(map, markers) {

    for (var i = 0; i < markers.length; i++) {
        var seller = markers[i];
        content_string = '<div style="width: 210px; padding-right: 10px" lang="ko" xml:lang="ko">(&#44396;&#44208;/&#21475;&#35363;)' + seller[0] + '<br>' + seller[1] + '<br>' + seller[4] + '</div>';
        var sellerLatLng = new google.maps.LatLng(seller[1], seller[2]);
        var marker = new google.maps.Marker({
            position: sellerLatLng,
            map: map,
            title: seller[0],
            zIndex: seller[3],
            html: content_string
        });
        var contentString = "content";
        google.maps.event.addListener(marker, "click", function () {

            infowindow.setContent(this.html);
            infowindow.open(map, this);
        });
    }

}
</script>
<body onLoad="initialize()">
<div id="map_canvas" style="width: 450px; height: 350px;">map div</div>
<div lang="it" xml:lang="it">Ciao bella!</div>
<div lang='ko' xml:lang='ko'>??/??</div>
</body>
</html>
...