2016-12-13 6 views
0

こんにちは私は、マーカーが表示されている国が2回表示されるようにユーザーがズームアウトすると、特定の場所にマーカーがあると言うシナリオがあります二度。Googleマップ - ズームのために同じマーカーの複数のインスタンス

マーカーの1つのインスタンスを削除して、一度に1つのバージョンしか表示されないようにすることが可能かどうか疑問に思っていました。

現在、マップapiは、指定された時点で画面上に同じマーカーの2つのインスタンスが存在するため、オーバーレイを配置する場所を特定できないため、オーバーレイのホバー動作を破棄します。

おかげ

+1

マーカーの作成方法をコードに記述できますか? – Tito

+0

http://www.messagesforjapan.com/messages/map/ ここに表示されている地図をスクロールして、オーストラリアの2つのコピーが表示されていることを確認し、右側の国のコピーのマーカー同じことが おかげ応答 – TheLearningDev

+0

'google.maps.event.addListener(マーカーのオーバーレイ法を使用してマーカーとしてのボックスオーバーレイのうちストックで発生 、「マウスオーバー」、関数(){ //画面のxyを するvar POS = self.latLngPixel(this.getPosition())を取得します。 \t \t \t \t \t \t \t \t \t \t //オーバーレイ \t \t \t \t \tするvarオーバーレイ= self.createOverlay(this.message、POS)を作成します。 \t \t \t \t \t \t \t \t \t \t // DOM \t \t \t \t \t $(self.mapCanvas).after(オーバーレイ)に追加します。 }); ' – TheLearningDev

答えて

0

それはバグ(あるいは少なくとも意図しない動作)であるかもしれないように思えます。

var SvgMarker2 = new google.maps.Marker({ 
    map: map, 
    icon: { 
     path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z M -2,-30 a 2,2 0 1,1 4,0 2,2 0 1,1 -4,0', 
     fillColor: "red", 
     fillOpacity: 1, 
     strokeColor: '#000', 
     strokeWeight: 2, 
     scale: 1 
    }, 
    position: new google.maps.LatLng(-30.4419, -72.1419) 
    }); 

proof of concept fiddle

SVG Icons on Map

コードスニペット:SVGアイコンと

A google.maps.Markerのみタイルの中央インスタンスに描画される

function initialize() { 
 
    var map = new google.maps.Map(
 
    document.getElementById("map_canvas"), { 
 
     center: new google.maps.LatLng(37.4419, -122.1419), 
 
     zoom: 0, 
 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
 
    }); 
 
    var marker = new google.maps.Marker({ 
 
    map: map, 
 
    position: map.getCenter() 
 
    }); 
 
    var SvgMarker = new google.maps.Marker({ 
 
    map: map, 
 
    icon: { 
 
     path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z', 
 
     fillColor: "red", 
 
     fillOpacity: 1, 
 
     strokeColor: '#000', 
 
     strokeWeight: 2, 
 
     scale: 1 
 
    }, 
 
    position: new google.maps.LatLng(-30.4419, -122.1419) 
 
    }); 
 
    var SvgMarker2 = new google.maps.Marker({ 
 
    map: map, 
 
    icon: { 
 
     path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z M -2,-30 a 2,2 0 1,1 4,0 2,2 0 1,1 -4,0', 
 
     fillColor: "red", 
 
     fillOpacity: 1, 
 
     strokeColor: '#000', 
 
     strokeWeight: 2, 
 
     scale: 1 
 
    }, 
 
    position: new google.maps.LatLng(-30.4419, -72.1419) 
 
    }); 
 
} 
 
google.maps.event.addDomListener(window, "load", initialize);
html, 
 
body, 
 
#map_canvas { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<div id="map_canvas"></div>

+0

しかし、pngマーカーでそれは複製する..うーん、私はsvgを試してみます – TheLearningDev

関連する問題