我想通过谷歌地图计算两点之间的距离。我搜索,我认为我使用的是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("");
有什么问题?我该怎么办? 干杯
答案 0 :(得分:2)
可能是因为您可能已经定义了自己的Location类或者引用了项目的其他部分(可能是外部库)定义的另一个Location类而导致冲突。
使用完全限定名称解决这些参考问题。例如,如果您有自己的位置类,则将其引用为com.mysampleapp.Location
,而不仅仅是Location
。
构造函数未被识别,因为它指的是项目中的其他Location类,而不是Google提供的类android.location.Location
。
一旦解决了我刚才讨论的参考问题,这将会消失。
答案 1 :(得分:0)
对于这种情况,Google已经为您提供了理想的服务。在这种情况下使用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
您可以在Android中使用此查询,使用HttpClient类,如下:
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 =''。
希望它对您有所帮助。如果您觉得我的回答对您有帮助,请接受并投票。享受编码...
答案 2 :(得分:0)
我尝试导入
时遇到了类似的问题import android.location.Location;
在名为Location.java的文件中。
重命名文件有帮助。