Eclipse不会创建位置(字符串)对象。为什么?

时间:2012-11-04 07:55:44

标签: android object location

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

有什么问题?我该怎么办? 干杯

3 个答案:

答案 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的文件中。

重命名文件有帮助。