Google Maps APIを使った位置情報の 精度について

3,447 views
Skip to first unread message

taka

unread,
Jan 9, 2012, 8:18:14 PM1/9/12
to Google-Maps-API-Japan
みなさま、
はじめまして馬渕と申します。

初歩的な質問で大変恐縮ではございますが、Google Maps APIを使った位置情報の
精度について教えてください。

[問題点]
1. Google Maps APIを使用し、東京都中央区銀座エリアの経度・緯度を取得する。
2. 「1」で取得した経度・緯度をGoogle maps上にて表示する。
 →マークされる場所が誤っている。

例えば、以下の住所にて上記の問題が発生します。
東京都中央区銀座3-5-3
東京都中央区銀座2-8-20
東京都中央区銀座4-4-10


検証用に作成したソースもあわせて記載しておきます。
-----
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?
sensor=false&language=ja&region=ja"></script>
<script type="text/javascript">
var geocoder;
function initialize() {
geocoder = new google.maps.Geocoder();
}

function codeAddress() {
var address = document.getElementById("address").value;
var latlng2;
if (geocoder) {
geocoder.geocode( { 'address': address}, function(results, status)
{
if (status == google.maps.GeocoderStatus.OK) {
document.getElementById("lat").value =
results[0].geometry.location.lat();
document.getElementById("lng").value =
results[0].geometry.location.lng();
latlng2=results[0].geometry.location;

geocoder.geocode({'latLng': latlng2, 'region' : "jp"},
function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
document.getElementById("ad").value =
results[0].formatted_address;
} else {
alert("Geocode was not successful for the following reason: " +
status);
}
});
} else {
alert("Geocode was not successful for the following reason: " +
status);
}
});
}
}
</script>
-----

上記現象の解決方法をご存じの方がいらっしゃいましたら、ご教授のほど
よろしくお願いいたします。


Masashi.K

unread,
Jan 9, 2012, 8:57:58 PM1/9/12
to Google-Maps-API-Japan
馬渕さん

ジオコーディング結果の精度は、
GeocoderResults.geometry. location_type に含まれる定数値でのみ
知ることができます。

ROOFTOP は精度高い
RANGE_INTERPOLATED は、交差点や道路から計算して凡そで導き出したレベル
GEOMETRIC_CENTER は、既存の道路や領域などの中心位置として導き出したレベル
APPROXIMATE は、おおよそのレベル

です。
細かい説明はこちら。
http://code.google.com/apis/maps/documentation/javascript/geocoding.html#GeocodingResults


--

コードが間違っているというよりも、Googleの持つデータが間違えているのだと思います。
gmaps-api-issuesの「Geocoding API」から、修正依頼は英語で報告することが可能です。

■gmaps-api-issues
http://code.google.com/p/gmaps-api-issues/

taka

unread,
Jan 10, 2012, 3:57:56 AM1/10/12
to Google-Maps-API-Japan
ご返信いただきまして誠にありがとうございます。

教えていただきました、ジオコーディング結果の精度(location_type)を取得ところ、APPROXIMATEとなっておりました。

私がGoogle Maps API のリファレンスを調べたところ、Google Maps APIに対して精度を指定して
リクエストは出来ない理解でおりますが、精度を指定する方法があれば教えて頂ければ幸いです。

また、ご丁寧にgmaps-api-issuesの修正依頼方法も記載いただきありがとうございます。
データが間違っている旨の報告に活用させていただきます。

馬渕

On 1月10日, 午前10:57, "Masashi.K" <wf9a5...@gmail.com> wrote:
> 馬渕さん
>
> ジオコーディング結果の精度は、
> GeocoderResults.geometry. location_type に含まれる定数値でのみ
> 知ることができます。
>
> ROOFTOP は精度高い
> RANGE_INTERPOLATED は、交差点や道路から計算して凡そで導き出したレベル
> GEOMETRIC_CENTER は、既存の道路や領域などの中心位置として導き出したレベル
> APPROXIMATE は、おおよそのレベル
>
> です。
> 細かい説明はこちら。http://code.google.com/apis/maps/documentation/javascript/geocoding.h...
>
> --
>
> コードが間違っているというよりも、Googleの持つデータが間違えているのだと思います。
> gmaps-api-issuesの「Geocoding API」から、修正依頼は英語で報告することが可能です。
>
> ■gmaps-api-issueshttp://code.google.com/p/gmaps-api-issues/

Masashi.K

unread,
Jan 10, 2012, 8:44:07 AM1/10/12
to Google-Maps-API-Japan
馬渕さん

残念ながら、リクエストするときに精度を指定する方法はないです。
代わりにGeocoderResultsは複数の結果を返していると思います。
通常、結果の0番目が一番精度が高いです。

taka

unread,
Jan 10, 2012, 8:08:50 PM1/10/12
to Google-Maps-API-Japan
ご多忙のところ、ご返信いただきありがとうございます。
リクエスト時に精度を指定できないのは残念ですが、先メールにて教えていただきました
修正依頼を行うとともに、他の解決方法を検討したいと思います。
Reply all
Reply to author
Forward
0 new messages