0

Google マップ マーカーにスプライト画像を使用しようとしていますが、表示されません。これが私が使用しているコードです

function setMarkers(map, markers) {

    var google_image = new google.maps.MarkerImage("http://www.mydomain.com/images/bodycss/pointer.png", new google.maps.Size(32, 32), new google.maps.Point(28, 32));

        for (var i = 0; i < markers.length; i++) {
            var sites = markers[i];
            var siteLatLng = new google.maps.LatLng(sites[1], sites[2]);
            var marker = new google.maps.Marker({
                position: siteLatLng,
                map: map,
                title: sites[0],
                zIndex: sites[3],
                html: sites[4],
                icon: google_image
            });

            var contentString = "Some content";

            google.maps.event.addListener(marker, "mouseover", function () {
                infowindow.setContent(this.html);
                infowindow.open(map, this);
            });
        }
    }

私が指定した画像サイズは 32px * 32px で、指定した画像位置ポイントは 28 と 32 です。マップのみがマーカーなしで表示されています。どんな助けでもいただければ幸いです

4

2 に答える 2

0

あなたの問題にはさまざまな問題があるかもしれません。問題に入る前にテストすることはほとんどありません-

カスタム マーカーを使用せずにコードをテストし、マーカーが正しく表示されるかどうかを確認します。それでもうまくいかない場合は、latlng の値が間違っています。動作する場合は、サイトからスプライト イメージにアクセスできるかどうかを確認します (エラーについては、chrome または firebug コンソールを参照してください)。エラーがない場合は、位置点が正しく調整されていない可能性があります。

またmap.setCenter(marker.getPosition())、マーカーを作成した後に追加して、表示領域に表示されるようにします。

更新- 上記の問題が問題でない場合は、マーカーが見つかるまで、以下の行でサイズとポイントのパラメーターを変更します。

var google_image = new google.maps.MarkerImage("http://www.mydomain.com/images/bodycss/pointer.png", new google.maps.Size(32, 32), new google.maps.Point(28, 32));

于 2012-12-10T06:45:06.470 に答える
0

一見、座標の設定を間違えているのではないでしょうか? LatLng は通常、54.621790812770513、-3.562549943618061 のように表されます。

あなたが指定した位置 (28, 32) はサウジアラビアの一点であり、あなたの意図がない限り、どこからでも 100 マイル離れていますか?

また、マップの中心をポイントに合わせていないため、マップが他の場所の中心にあるときに (サウジアラビアで) 表示される可能性がありますか?

また、誰かがあなたの問題を解決した場合は、回答を受け入れてください(私は持っていないかもしれませんが)。丁寧なだけ。

于 2012-12-06T11:01:08.493 に答える