質問: googleマップをajax googleマップをajaxとかなりあるデータがあるxmlデータを使って表示するとき 座標の中心から何km以内のデータ のみxmlデータから抽出して表示するには どうすればいいのでしょうか
回答: map api のreferenceを見てみると、distanceに関連するobjectがありましたので、それで求められるかと思いましたが、 https://developers.google.com/maps/documentation/javascript/reference#distance どうやら、ルート上の距離を測ってしまうみたいですね。 サンプルの中を探してみたところ、ギャラリーの中に距離を算出している例がありましたので、参考になるかと。 http://www.barattalo.it/examples/ruler.html 中を見てみると、単純に緯度、経度の差から三角関数で距離を算出しているようですので、地球表面を正球面として計算しているようです。 ただし、長半径6378kmよりも小さい6371を用いているようですので、地図周辺用に換算してあるのではないかと思います。 対象地域が日本などに限定されていれば、同様の方法でもあまり誤差はないのではないかと推測されます。 そうでないときは、求める精度にもよりますが、地球を楕円体として計算することになるのかも... http://ja.wikipedia.org/wiki/%e5%9c%b0%e7%90%83 実際の計算では、全部のデータに対して距離を求める必要はなくて、先に中心点から半径距離に当たる矩形のエリアを求めておいて、まず、緯度・経度がその外側であったら除外、内側の点だけに対して距離を計算してチェックするようにすれば少しは効率が上がるのではと思います。