ドイツの鉄道を表示するFusionTablesLayerを備えたGoogleマップがあります(フュージョンテーブルはここにあります)。geometry
列には、各フィーチャの LineString 座標が含まれます。
var railwaysLayer = new google.maps.FusionTablesLayer({
map: map,
query: {
select: 'geometry',
from: '1cVaJLbbxgBErP8PzYkHP-lpWMN8wUmINbdAJS1Y'
}
});
ユーザーが鉄道をクリックしたとき、どの行 (または実際に機能) がクリックされたかを知る必要があります。click
これは、次のようにイベント ハンドラーで実行できます。
google.maps.event.addListener(existingRailwaysLayer, 'click', function(e) {
console.log(e.row.geometry.value);
});
これは期待どおりに機能しますが、ここに問題があります。このテーブルは、テストとして KML ファイルから 1 か月前にアップロードされました。今日、まったく同じ KML ファイルを別のアカウント (ここ) にインポートしましgeometry
たが、イベント ハンドラーで列が返されなくなりました。
すべての設定を確認したところ、両方のテーブルでgeometry
列のタイプがLocation
. ただし、最初のテーブルでは、行はジオコーディングされていません。File > Geocode > Begin geocoding
は、各行のジオコーディング プロセスを効果的に開始しますが、2 番目のテーブルでは、「列は完全にジオコーディングされています」と表示されます。
他のすべてはまったく同じであるため、これが問題になる可能性が非常に高くなります。2 番目のテーブルの行を「ジオコーディング解除」する方法がわかりません。最初のものが 1 か月前にアップロードされたので、Google が行を自動的にジオコーディングするようになったと思います。
geometry
クリックされた機能の列を取得する方法はありますか?
注:geometry
列がジオコーディングされている場合でも、間違いなく可能です。2 番目のテーブルの [Map of geometry] タブでは、フィーチャをクリックしたときに infoWindow に表示される列を選択できます。実際のデモについては、こちらを参照してください。