【问题标题】:Google Maps Elevation Api Wrong ValueGoogle Maps Elevation Api 值错误
【发布时间】:2012-10-12 17:28:55
【问题描述】:

我已经尝试过这种方法来获取海拔高度,使用经度和纬度

private double lookingForAltitude(double latitude, double longitude) {
        double result = Double.NaN;
        HttpClient httpClient = new DefaultHttpClient();
        HttpContext localContext = new BasicHttpContext();
        String url = "http://maps.googleapis.com/maps/api/elevation/"
                + "xml?locations=" + String.valueOf(longitude)
                + "," + String.valueOf(latitude)
                + "&sensor=true";
        HttpGet httpGet = new HttpGet(url);
        try {
            HttpResponse response = httpClient.execute(httpGet, localContext);
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                InputStream instream = entity.getContent();
                int r = -1;
                while ((r = instream.read()) != -1)
                    respStr.append((char) r);
                String tagOpen = "<elevation>";
                String tagClose = "</elevation>";
                if (respStr.indexOf(tagOpen) != -1) {
                    int start = respStr.indexOf(tagOpen) + tagOpen.length();
                    int end = respStr.indexOf(tagClose);
                    String value = respStr.substring(start, end);
                    result = (double)(Double.parseDouble(value));
                }
                instream.close();
            }
        } catch (ClientProtocolException e) {} 
        catch (IOException e) {}

        return result;
    }

可惜没用

通过举例

double latitude = 48.856908
double longitude = 2.352426

法国巴黎蒂沃利街

得到-3997.6191406

怎么了??

我在其他地方也得到了错误的价值。

PS

听说这个功能的请求限制是2500。 这与每个 IP 相关,还是所有使用我的证书的应用的最大数量?

【问题讨论】:

    标签: android google-maps-api-3 elevation


    【解决方案1】:

    您正在交换纬度和经度的值。

    http://maps.googleapis.com/maps/api/elevation/xml?locations=2.352426,48.856908&sensor=true 返回:

    <result>
    <location>
    <lat>2.3524260</lat>
    <lng>48.8569080</lng>
    </location>
    <elevation>-3997.6191406</elevation>
    <resolution>610.8129272</resolution>
    </result>
    

    http://maps.googleapis.com/maps/api/elevation/xml?locations=48.856908,2.352426&sensor=true 返回时:

    <result>
    <location>
    <lat>48.8569080</lat>
    <lng>2.3524260</lng>
    </location>
    <elevation>32.0345688</elevation>
    <resolution>9.5439520</resolution>
    </result>
    

    您必须调用 lookingForAltitude 并交换值。

    【讨论】:

      猜你喜欢
      • 2021-06-02
      • 1970-01-01
      • 2016-08-02
      • 1970-01-01
      • 2016-09-16
      • 2020-09-06
      • 1970-01-01
      • 2022-10-22
      • 2022-10-24
      相关资源
      最近更新 更多