如何在默认导航一个 Geopoint 中设置用户当前位置?

Posted

技术标签:

【中文标题】如何在默认导航一个 Geopoint 中设置用户当前位置?【英文标题】:How to set user current location in default navigation one Geopoint? 【发布时间】:2012-08-23 14:40:59 【问题描述】:

我想在我的一个地理点中设置我的当前位置是默认位置。如果我想获取从我当前位置到另一个位置的方向路径,我想在我的一个位置显示默认当前位置。

这是查找用户当前位置的代码:

public class WhereIActivity extends MapActivity

    @Override
    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_where_i);

 MapView myMapView=(MapView)findViewById(R.id.myMapView);

        mapController=myMapView.getController();


       myMapView.displayZoomControls(false);

       mapController.setZoom(17);


       myMapView.setStreetView(true);
       myMapView.setTraffic(true);

LocationManager locationManager; 
        String context = Context.LOCATION_SERVICE; 
        locationManager = (LocationManager)getSystemService(context); 

        Criteria crta = new Criteria(); 
        crta.setAccuracy(Criteria.ACCURACY_FINE); 
        crta.setAltitudeRequired(false); 
        crta.setBearingRequired(false); 
        crta.setCostAllowed(true); 
        crta.setPowerRequirement(Criteria.POWER_LOW); 
        String provider = locationManager.getBestProvider(crta, true); 

     // String provider = LocationManager.GPS_PROVIDER; 
        Location location = locationManager.getLastKnownLocation(provider); 
        updateWithNewLocation(location); 

        locationManager.requestLocationUpdates(provider, 2000, 10, locationListener); 
         

 private final LocationListener locationListener = new LocationListener() 
     

    @Override 
    public void onLocationChanged(Location location)  
    updateWithNewLocation(location); 
     

    @Override 
    public void onProviderDisabled(String provider)  
    updateWithNewLocation(null); 
     

    @Override 
    public void onProviderEnabled(String provider)  
     

    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras)  
     

    ; 

private void updateWithNewLocation(Location location)  
        String latLong;
        TextView myLocation; 
        myLocation = (TextView) findViewById(R.id.myLocation); 

        String addressString = "no address found"; 

        if(location!=null)  



            positionOverlay.setLocation(location);


            Double geoLat=location.getLatitude()*1E6;
            Double geoLng=location.getLongitude()*1E6;
            GeoPoint point=new GeoPoint(geoLat.intValue(),geoLng.intValue());

            mapController.animateTo(point);

        double lat = location.getLatitude(); 
        double lon = location.getLongitude(); 
        latLong = "Lat:" + lat + "\nLong:" + lon; 

double lattitude = location.getLatitude(); 
        double longitude = location.getLongitude(); 

        Geocoder gc = new Geocoder(this,Locale.getDefault()); 
        try  
        List<Address> addresses= gc.getFromLocation(lattitude, longitude, 1); 
        StringBuilder sb = new StringBuilder(); 
        if(addresses.size()>0)  
        Address address=addresses.get(0);
        for(int i=0;i<address.getMaxAddressLineIndex();i++)
            sb.append(address.getAddressLine(i)).append("\n");
        sb.append(address.getLocality()).append("\n"); 
        sb.append(address.getPostalCode()).append("\n"); 
    sb.append(address.getCountryName()); 
     
        addressString = sb.toString(); 
         
        catch (Exception e)  
         
         else  
        latLong = " NO Location Found "; 
         

        myLocation.setText("Your Current Position is :\n"+ latLong + "\n"+  addressString ); 
    

@Override
    protected boolean isRouteDisplayed() 
        // TODO Auto-generated method stub
        return false;
    
    

如何在方向路径中设置此用户当前位置默认值:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
                Uri.parse("http://maps.google.com/maps/?daddr=my+street+address"));
                intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
                startActivity(intent);

【问题讨论】:

【参考方案1】:

请仔细阅读此链接。此代码在我的应用程序中成功运行

http://ckpatel.blog.com/category/android-gps/

此代码用于绘制路径,我认为获取位置代码是正确的,但请在移动设备中检查。谢谢

【讨论】:

以上是关于如何在默认导航一个 Geopoint 中设置用户当前位置?的主要内容,如果未能解决你的问题,请参考以下文章

如何在本机底部导航中设置默认屏幕?

如何在运行时在由 android studio 创建的导航抽屉中设置默认片段

如何在 SwiftUI 列表中设置 NavigationLink

如何在 iOS 7 中设置导航栏的色调颜色

如何在更多视图控制器的导航栏中设置图像并将更多标签的颜色从白色更改为绿色..?

如何在 zf2 中设置 2 个导航?