【问题标题】:How to get latitude/longitude from a city name for GWT's MapVisualization?如何从 GWT 的 MapVisualization 的城市名称中获取纬度/经度?
【发布时间】:2012-01-12 21:24:29
【问题描述】:

是否有可能仅从城市名称或街道名称获取 Google 地图的纬度和经度代码?

例如:我只想要巴黎(法国)的经纬度代码,这样我就可以将它用于 Google 的 MapVisualization(Google Web Toolkit、Google App Engine 和 RPC)。

因为每次查找每个城市的经纬度代码非常不方便。

package com.practicum.client.out;

import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.visualization.client.DataTable;
import com.google.gwt.visualization.client.AbstractDataTable.ColumnType;
import com.google.gwt.visualization.client.visualizations.MapVisualization;
import com.google.gwt.visualization.client.visualizations.MapVisualization.Options;


public class DataOutGoogleMap {

public DataOutGoogleMap(Runnable runnable) {
}

public Widget createGoogleMapView() {
    DataTable data = DataTable.create();
    data.addColumn(ColumnType.NUMBER, "Lat");
    data.addColumn(ColumnType.NUMBER, "Lon");
    data.addColumn(ColumnType.STRING, "Name");
    data.addRows(3);

    data.setValue(0, 0, 52.37022);
    data.setValue(0, 1, 4.89517);
    data.setValue(0, 2, "This is Amsterdam");

    data.setValue(1, 0, 51.50813);
    data.setValue(1, 1, -0.12801);
    data.setValue(1, 2, "This is London");

    data.setValue(2, 0, "Paris, France"); // DONT WORK?
    data.setValue(2, 1, "");
    data.setValue(2, 2, "This is Paris");

    Options options = Options.create();
    options.setEnableScrollWheel(true);
    options.setMapType(MapVisualization.Type.NORMAL);
    options.setShowTip(true);

    return new MapVisualization(data, options, "400px", "300px");
    }
}

【问题讨论】:

    标签: google-app-engine google-maps gwt google-visualization gwt-rpc


    【解决方案1】:

    这可以通过Google Geocoding API 来完成。例如,要查找巴黎的 lat 和 lng,您可以提交

    GET
    http://maps.googleapis.com/maps/api/geocode/json?address=Paris,+France&sensor=false
    

    所需的 lat 和 lng 包含在 JSON 响应中,位于“几何”字典中名为“location”的键处:

     "geometry" : {
                ...
                "location" : {
                   "lat" : 48.8566140,
                   "lng" : 2.35222190
                },
    

    【讨论】:

      【解决方案2】:

      您需要下载一个城市位置数据库,例如this one,并在需要时使用它来查找它们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-26
        • 2013-12-09
        • 1970-01-01
        • 1970-01-01
        • 2013-03-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多