4

私は経度と緯度を使用して高度を取得するためにこの方法を試しました

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

Rue de Tivoli Paris France

-3997.6191406を取得

なにが問題ですか??

他の場所でも間違った価値があります。

PS

この機能のリクエスト制限は2500だと聞きました。これはすべてのIPに関連していますか、それとも私の証明書を使用するすべてのアプリの最大量ですか?

4

1 に答える 1

4

緯度と経度の値を交換しています。

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値を交換して呼び出している必要があります。

于 2012-10-22T20:49:33.977 に答える