3

我想通过谷歌地图计算两点之间的距离。我搜索了,我认为我使用了 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.

构造函数未被识别,因为它指的是您项目中的另一个 Location 类,而不是 Google 提供的类,即android.location.Location

一旦您解决了我刚刚讨论的参考问题,这将消失。

于 2012-11-04T08:02:07.407 回答
0

我尝试导入时遇到了类似的问题

import android.location.Location;

在名为 Location.java 的文件中。

重命名文件有帮助。

于 2014-03-07T18:50:58.120 回答
0

对于这种情况,谷歌已经为你想要的东西提供了很好的服务。在这种情况下使用Google Direction API。您也可以使用 Google Map API,但我认为 Direction API 会更方便您的要求。

例如,如果您想计算从安大略省多伦多到魁北克蒙特利尔之间的距离。你应该像下面这样查询:

http://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&sensor=false

上面的查询为您提供 JSON 响应。当您将此 URL 放入浏览器时,您可以看到两个位置之间的距离,例如:

"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 回答