住所を入力したときは、GoogleMaps API のジオコーダを使って、住所から緯度経度を検索して、その結果から HTML を生成します。先週公開した The geo microformat 生成ツール ですが、空白文字を含む住所で検索したとき、期待どおり Google マップが移動してくれないことがありました。
"新宿区 歌舞伎町" という同じ住所で検索しているにも関わらず、移動したりしなかったりします。ですが、"新宿区歌舞伎町" のように空白なしの住所にすると、毎回ちゃんと移動します。なんでだろう。謎ですね。
それなりの原因が分からないのが気持ち悪いですが、Google Maps API のジオコーダを解析することもできないので、
住所を指定して GClientGeocoder を実行している部分を、
geocoder.getLatLng(c, function(point) {次のように、住所の文字列から空白(全角を含む)を除去してから、GClientGeocoder を実行するように仮対処しました。
if (point)
map.panTo(point);
});
geocoder.getLatLng(c.replace(/[\u3000\s]+/g, ''),ちなみに GClientGeocoder は、全角空白を空白として解釈してくれるようです。なので、この謎さえ解決すれば、ソースコード上では、空白(全角を含む)を意識しなくてよいはずなのですが・・・。
function(point) {
if (point)
map.panTo(point);
}
);
0 件のコメント:
コメントを投稿