1

建物の標高を計算するアプリを開発する必要があります、、、このコードを使用しますが、海底から標高を計算します

private double getElevationFromGoogleMaps(double longitude, double latitude) {
    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(latitude)
            + "," + String.valueOf(longitude)
            + "&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;
            StringBuffer respStr = new StringBuffer();
            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)*3.2808399); // convert from meters to feet
            //    result = (double)(Double.parseDouble(value));
            }
            instream.close();
        }
    } catch (ClientProtocolException e) {} 
    catch (IOException e) {}

    return result;
}

地面から建物の標高を計算する方法を教えてくれる人はいますか...??

4

1 に答える 1

0

Google やその他の同様のサービスは、海抜の高さのみを提供できます。建物の高さを計算するには、大気圧を測定する気圧計センサーを備えたデバイスを使用する必要があります。http://developer.android.com/reference/android/hardware/SensorEvent.htmlおよびを参照してくださいSensor.TYPE_PRESSURE。ただし、実際にそのようなセンサーを備えたデバイスについては知りません...代わりに、高度計を使用するか、建物の計画を調べることができます(特定の建物の場合)。

于 2012-08-29T12:11:44.183 に答える