1

Google マップのドキュメント ( https://developers.google.com/maps/documentation/javascript/reference#MarkerOptions ) には次のように書かれています。

「google.maps.visualRefresh が true に設定されている場合、影はレンダリングされません。」

これを上書きして、visualRefresh の使用中に影を表示することは可能ですか?

これを述べているドキュメントも見つけました( https://devsite.googleplex.com/maps/documentation/javascript/basics ):

視覚的な更新ですべての影が削除されました。プログラムで指定されたすべてのシャドウは無視されます。

もしそうなら、影とvisualRefreshを許可するためにこれを何らかの形で上書きすることを許可しないのは、私にはまだ奇妙に思えます。

4

2 に答える 2

0

より低い z-index で追加のマーカーを作成してみませんか? カスタムオーバーレイを作成するよりも手間がかからず、間違いなくそれを行うためのより正しい方法です. (提案されているように、アイコン イメージの一部として影を含む 1 つのマーカー アイコンを作成すると、影もクリック可能になり、望ましくありません)

createMarkerShadow = function(map, data) {
        var latLng = new google.maps.LatLng(data.latitude, data.longitude);
        var markerShadow = new google.maps.Marker({
            clickable: false,
            position: latLng,
            map: map,
            icon:{
                url: '/frontend/img/icons/google-map-marker-shadow.svg',
                //The size image file.
                size: new google.maps.Size(225, 120),
                //The point on the image to measure the anchor from. 0, 0 is the top left.
                origin: new google.maps.Point(0, 0),
                //The x y coordinates of the anchor point on the marker. e.g. If your map marker was a drawing pin then the anchor would be the tip of the pin.
                anchor: new google.maps.Point(115, 82)
            },
            zIndex: (Math.round(latLng.lat()*-100000)<<5)-1
        });

        return markerShadow;
    };


setMarkerShadows = function (map, locations, bound) {
    for (var i = 0; i < locations.length; i++) {
        var data = locations[i];
        var markerShadow = createMarkerShadow(map, data);

        bound.extend(markerShadow.getPosition());
    }
};

bound = new google.maps.LatLngBounds();
于 2015-02-04T11:00:39.853 に答える