我正在使用 javascript googlemap API。 我希望用户定义一个城市名称。然后我将名称 + 坐标存储在数据库中。
这很容易做到,但问题是:
- 如果用户输入错误(例如 Paaris 而不是 Paris),Google 可以理解,但我不知道最终名称(正确的名称),所以我在数据库中创建(或重新创建)一个错误的条目。
- 如果用户输入国家/地区名称,它会起作用,但我只想要城市。
那么我可以知道一个特定坐标下的城市名称吗?国家的理想?我可以知道它下面是否没有城市或国家吗? 你对我的问题有其他想法吗?
谢谢!
最佳答案
您不需要反向地理编码。
使用 Google 的地理编码器获取城市的纬度/经度。 Google 将返回它在响应中找到的城市名称:
这是一个拼写错误的 Paris 的地理编码请求: http://maps.googleapis.com/maps/api/geocode/json?address=Paaris&sensor=false
Google 会在响应中为您提供正确的位置...
{
"status": "OK",
"results": [ {
"types": [ "locality", "political" ],
"formatted_address": "Paris, France",
"address_components": [ {
"long_name": "Paris",
"short_name": "Paris",
"types": [ "locality", "political" ]
}, {
"long_name": "Paris",
"short_name": "75",
"types": [ "administrative_area_level_2", "political" ]
}, {
所以...
- 城市用户类型
- 您使用 Google 的地理编码服务对其进行地理编码
- 如果地理编码成功,则从地理编码响应中获取实际城市并将其与坐标一起添加到数据库中
- 如果地理编码失败提醒用户。
作为中间步骤,您还可以检查输入的城市是否与 google 找到的城市不同,并与用户核实。
关于javascript - Google Map API - 获取有关一个坐标的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4167357/