3

Googleマップで2点間の距離を計算したい。私は検索しましたが、私は Location オブジェクトを使用していると思いますが、これを書くと:

import java.io.IOException;
import java.lang.Runnable;
import java.util.List;
import java.util.Locale;
import java.lang.Object;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Point;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.view.View.OnKeyListener;
import android.view.KeyEvent;
import android.location.Location;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;

Eclipse は android.location.Location; を書き込みます。同じファイルで定義されたタイプと競合します。そして、場所オブジェクトを作成すると、Eclipse が書き込みます コンストラクター Location(string) は未定義です。

Location location=new Location("");

何が問題ですか?私は何をすべきか?乾杯

4

3 に答える 3

2

独自の Location クラスを定義したか、プロジェクトの他の部分 (おそらく外部ライブラリ) で定義された別の Location クラスを参照している可能性があるため、競合が発生する可能性があります。

これらの参照の問題は、完全修飾名を使用して解決してください。たとえば、独自の Location クラスがある場合はcom.mysampleapp.Location、単に ではなくとして参照しLocationます。

コンストラクターは、Google が提供するものではなく、プロジェクト内の他の Location クラスを参照しているため、認識されていませんandroid.location.Location

先ほど説明した参照の問題を解決すると、これはなくなります。

于 2012-11-04T08:02:07.407 に答える
0

インポートしようとしたときに同様の問題が発生しました

import android.location.Location;

Location.java という名前のファイルにあります。

名前変更ファイルが役立ちます。

于 2014-03-07T18:50:58.120 に答える
0

この種の状況のた​​めに、Google はまさにあなたが望む素晴らしいサービスを提供してくれました。この状況では、Google Direction APIを使用します。Google Map API も使用できますが、Direction API の方が要件に適していると思います。

たとえば、オンタリオ州トロントからケベック州モントリオールまでの距離を計算したい場合。以下のようにクエリする必要があります。

http://maps.googleapis.com/maps/api/directions/json?origin=トロント&destination=モントリオール&sensor=false

上記のクエリは、JSON 応答を返します。この URL をブラウザに入力すると、次のように 2 つの場所の間の距離を確認できます。

"legs" : [
            {
               "distance" : {
                  "text" : "542 km",
                  "value" : 542397

以下のような HttpClient クラスを使用して、Android でこのクエリを使用できます。

             HttpClient httpclient = new DefaultHttpClient();
             HttpPost httppost = new HttpPost(this.URL);
             httppost.setEntity(new UrlEncodedFormEntity(this.postParameters));
             HttpResponse response = httpclient.execute(httppost);
             HttpEntity entity = response.getEntity();
             is = entity.getContent();

また、JSON レスポンスを取得できます。必要に応じて「origin=''&destination=''」を変更できます。

お役に立てば幸いです。私の答えがあなたに役立つと思ったら、受け入れて投票してください。コーディングを楽しむ...

于 2012-11-04T08:15:43.813 に答える