4

Google マップ (V3) マーカーで表示します。アイコンの読み込みを高速化するために、すべてのアイコンが 1 つのスプライトに格納されます。アイコンが切り取られることがあります (下部または/および右端に 1 ピクセル幅の境界線がありません)。興味深いことに、マップをズームすると、問題が解消されます。これは Google のバグですか、それとも私が何か間違ったことをしているのですか。この問題は、Firefox、Chrome、および IE で発生します。

誰かが同様の経験や問題の解決策を持っていますか?

問題の縮小例を作成しました。この例はオンラインでもアクセスできます: http://www.gps-tracks.com/MarkerIconSpriteProblem.aspx

var markerIcon = new google.maps.MarkerImage(
  "pictures/NetzCats/C03-MapSpritesS03.png",
  new google.maps.Size(20, 16),
  new google.maps.Point(140, 1600),
  new google.maps.Point(10, 8)
  //new google.maps.Size(20, 16)
);

var marker = new google.maps.Marker({
  position: myLatlng,
  map: map,
  title: 'Hello World!',
  icon: markerIcon
});
4

3 に答える 3

2

v3.10 http://jsfiddle.net/skdz6/を使用しています

src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"

バージョン 3.9 ではすべて問題ありません http://jsfiddle.net/skdz6/1/

src="https://maps.googleapis.com/maps/api/js?v=3.9&sensor=false"

v3.10で動作することを知っている人はいますか?

于 2012-12-10T20:30:10.583 に答える
0

アイコンを半分のサイズに縮小しているため、必然的にいずれかの境界線が失われ、サイズとポイント、およびプロパティの順序が交換されます。

代わりにこれを試してください:

   var markerIcon = new google.maps.MarkerImage(
      new google.maps.Point(5, 8), // anchor (POINT)
      new google.maps.Point(140, 1600),//<====== origin (POINT)
      new google.maps.Size(10, 8), //<======scaledSize (SIZE)
      new google.maps.Size(20, 16), //<====== Size (SIZE)          
      "pictures/NetzCats/C03-MapSpritesS03.png" //URL
    );

ドキュメンテーションはこちら

于 2012-12-09T15:33:39.353 に答える