地図に関して非常に厄介な問題があります。maps.google.com で「rue du sapin, la marsa, tunisie」を検索すると、それが見つかり、期待どおりに動作します。
今私はApiを使用しており、このように構成しました
private static final String MAPS_REQUEST_URL = "http://maps.googleapis.com/maps/api/geocode/json?sensor=false&language=FR&components=country:TN&address=";
「rue du sapin, la marsa, tunisie」でこの URL をリクエストすると、Rue du Sapin, Carthago, Tunisieが返されます
地域、言語、国のパラメーターをいじってみましたが、何もうまくいきません: Google がla marsaをcarthagoに翻訳しているようです(内部バージョン: la marsa は carthago の近くにあるため、これは地理的に何らかの形で正しいです.
しかし、チュニジアではラ・マルサと呼ぶ人は誰もいないでしょう。カルタゴはナンセンスです。
問題は、なぜ Web クライアントは適切な用語を使用し、Api は使用しないのでしょうか?
(ネットワークタブで)クロム開発者に確認すると、このリクエストが実行されています。それを他のAPIのURLに変換する方法がわかりません
curl 'https://maps.google.com/maps/suggest?q=rue+du+sapin,+la+mars&cp=21&hl=en&gl=&v=2&clid=1&json=a&ll=34.768691,10.008545&spn=5.955003,16.907959&vpsrc=6&authuser=0&auth=526fd0392GzY4pXSd2dS4DPzdNUGxkJ-kLI&src=1,2&num=5&numps=2&callback=_xdc_._1fhndbld0j' -H ':host: maps.google.com' -H 'accept-encoding: gzip,deflate,sdch' -H 'accept-language: en-US,en;q=0.8,fr;q=0.6,cs;q=0.4,it;q=0.2,ar;q=0.2' -H 'user-agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36' -H ':path: /maps/suggest?q=rue+du+sapin,+la+mars&cp=21&hl=en&gl=&v=2&clid=1&json=a&ll=34.768691,10.008545&spn=5.955003,16.907959&vpsrc=6&authuser=0&auth=526fd0392GzY4pXSd2dS4DPzdNUGxkJ-kLI&src=1,2&num=5&numps=2&callback=_xdc_._1fhndbld0j' -H 'accept: */*' -H ':version: HTTP/1.1' -H 'referer: https://maps.google.com/' -H 'cookie: SS=(...)' -H ':scheme: https' -H 'x-chrome-variations: CIO2yQEIhrbJAQiltskBCKm2yQEIxLbJAQiehsoBCNeHygEIlorKAQ==' -H ':method: GET' --compressed
この回答は私の問題に関連していると思われます (遠くからでも) Google Map APIs : 英国固有の結果
すべての回答に事前に感謝します