我必须使用srceen中心的标记和移动地图 而不是标记获取标记显示点的纬度。我有搜索互联网的东西像拖动标记,但我是 不知道这是我需要什么。任何解决方案?通过一个稳定的标记获取纬度,经度?
回答
在你的mapActivity wrtie这。
Location l = new Location();
// Location class will be used to calculate distance moved by map
TimerTask tm;
GeoPoint oldCenterOfMap, newCenteOfMap;
//在您的恢复活动方法上执行oldCenterOfMap = mapView.getMapCenter();
Handler mHandler = new Handler();
int isTouched = 0;
MapView mapview = (MapView) findViewById(R.id.yourmapview_from_xml);
mapView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
newCenteOfMap = mapView.getMapCenter();
if (mapchanged(oldCenterOfMap, newCenteOfMap)) {
isTouched++;
// Here is what would you do when you lift your finger fromt he map*****
newCenteOfMap =mapView.getMapCenter());
if (isTouched >= 1) {
if (isTouched > 1) {
mHandler.removeCallbacks(tm_circle);
isTouched = 1;
}
mHandler.postDelayed(tm_circle, 1200);
}
}
if (!mapchanged(oldCenterOfMap, newCenteOfMap))
mHandler.removeCallbacks(tm_circle);
}
return false;
}
});
tm_circle = new TimerTask() {
@Override
public void run() {
isTouched = 0;
// here is what you do after you touched a map moved after 1.2 seconds
oldCenterOfMap = mapView.getMapCenter();
}
};
public boolean mapchanged(GeoPoint oldCenter, GeoPoint newCenter) {
String distance = l.CalclauteDistance(oldCenter.getLongitudeE6()/1E6,
oldCenter.getLatitudeE6()/1E6,
newCenter.getLongitudeE6()/1E6,
newCenter.getLatitudeE6()/1E6);
if (Double.valueOf(distance) == 0.0)
return false;
else
return true;
}
以前的代码会保持地图移动的轨迹。 下一个代码将在地图移动的情况下做出响应。 在以上代码中提供的注释中(//这是您在1.2秒后移动的地图后执行的操作和/ /以下是您从地图中提起手指时的操作)关于我在另一篇文章上回答的指示。 这里Adding multiple overlays on mapview dynamically
编辑
public String CalclauteDistance(double long1, double lat1, double long2,
double lat2) {
String Result;
Point p1 = new Point(long1, lat1);
Point p2 = new Point(long2, lat2);
Result = p1.distanceTo(p2) + "";
return Result;
}
这里是从位置类的功能(CalclauteDistance)。
感谢您向我发送代码,但我有一个问题。在“l.CalclauteDistance”这一点,它告诉我,这是类型位置未定义。我应该改变这种方法与其他? – Dimitris 2013-02-13 15:30:01
您可以使用distanceTo或API中可用的任何其他方法来计算两点之间的距离。但请确保它返回的数据类型。从现在起10个小时,我会用这种方法更新你。 – 2013-02-13 19:06:57
对不起。这里是CalclauteDistance()方法。 – 2013-02-15 10:12:28
- 1. 通过GPS获取纬度和经度
- 2. 获取标记的经纬度(onclick)
- 3. 获取经纬度上标记
- 4. 取纬度经度通过使用Javascript
- 5. 获取纬度和经度
- 6. 获取经度和纬度
- 7. 可拖动标记gmaps.js获取经度和纬度
- 8. 从Google标记中获取纬度/经度
- 9. 通过navigator.geolocation以外的方法获取经度/纬度?
- 10. 如何在Android中通过GPS获取经度和纬度?
- 11. 通过传递地址获取纬度和经度
- 12. 如何通过GPS和/或网络获取纬度和经度?
- 13. 宣传单张。如何通过纬度和经度获得JSON标记属性?
- 14. 从TWebBrowser的GoogleMaps获取纬度经度
- 15. 获取经度和纬度的限制
- 16. GeoAlchemy2:获取纬度,经度点的
- 17. 获取经纬度从经纬度对象的Android
- 18. CoreLocation ::获取经纬度坐标
- 19. 获取经纬度,Android
- 20. 从CLLocation获取经纬度
- 21. Geonames获取经纬度
- 22. 从json获取经纬度
- 23. 通过意向传递纬度/经度
- 24. 纬度经度通过互联网
- 25. 获取上一个位置的经度和纬度
- 26. 从MKMapView中的一个点获取纬度和经度?
- 27. GMap.NET获取经度和纬度
- 28. Android:获取纬度和经度
- 29. 从GpsMyLocationProvider获取经度和纬度(OSMdroid)
- 30. 获取纬度和经度从PIN码
YOu可以收听地图movments并重新计算标记位置 – Mirco 2013-02-09 23:47:44
在android中很难听地图的变化。 Android只有touchListeners。尝试在地图中心搜索绘制圆圈。我做了类似的事情。但是,我的观点迟迟没有跟上地图中心。如果您对我的代码感兴趣,请在这种情况下告诉我。 – 2013-02-10 08:08:22