0

私はSVGファイルを持っています。

  1. フラット ユークリッド図法のカスタム グラウンド オーバーレイとしてエクスポートして使用します (econym.org.uk/gmap/example_custommapflat.htm)。
  2. ポリゴンのみを取得して Google マップに投影する

私の SVG ファイルには共通のルールがいくつかあります。

  1. それらはすべて4096x4096pxです
  2. マップの主要なオブジェクトが中央に配置されています

私はいくつかの実験を行いました。そのうちの 1 つをここで見ることができます。ご覧のとおり、問題は、ポリゴン ポイントが中央ではなく左側に投影されていることと、縦横比がまったく正しくないことです。

問題は、次の場合にアスペクト比を計算する方法です。

  1. svg の viewBox 属性が存在する
  2. svg の viewBox 属性が存在しないか、各ポリゴンを変換する必要があります (map.svg のように)。

オフセット (オブジェクトの中心) はどうですか?

前もって感謝します!

*IE ではテストされていません

4

1 に答える 1

0

DivPixels と ContainerPixels を混同している可能性はありますか?

変更してみる

   var latlng  = self.projection.fromPixelToLatLng(
       new GPoint(point[0], point[1]),
       self.map.getZoom()
   );

   var latlng  = self.map.fromContainerPixelToLatLng(
      new GPoint(parseFloat(point[0]), parseFloat(point[1]))
   );

この場合、数値ではなく文字列を使用するという事実はおそらくまだ問題を引き起こしていませんが、ここで数値を使用し、+ 演算子が座標への加算ではなく文字列の連結を行う可能性を回避することをお勧めします。後でプロジェクトで。

于 2009-10-02T23:55:34.373 に答える