【发布时间】:2015-11-28 15:34:12
【问题描述】:
我有一个将纬度和经度转换为地址的 Geocoder IntentService。我在屏幕的正中间还有一个自定义标记图像。我想让用户通过简单地拖动地图并将其放在我的自定义标记下方来选择他们想要的任何位置。一旦他们这样做,我想获得屏幕中心的纬度和经度,并将这些参数传递给 Geocoder 类。我尝试了以下但我只得到当前位置。标记卡在中间,这意味着如果我拖动地图,它会弹回我当前的位置。我正在使用谷歌地图 api V2。
protected void startGeocoderService(final Location lo) {
map.setOnCameraChangeListener(new OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition cameraPosition) {
try {
LatLng lalng = new LatLng(lo.getLatitude(), lo.getLongitude());
map.moveCamera(CameraUpdateFactory.newLatLngZoom(lalng, 15));
LatLng newloatlng = map.getCameraPosition().target;
lo.setLatitude(newloatlng.latitude);
lo.setLongitude(newloatlng.longitude);
Intent myintent = new Intent(MapActivity.this, FetchAddressIntentService.class);
myintent.putExtra(Constants.RECEIVER, mAddressResultReceiver);
myintent.putExtra(Constants.LOCATION_DATA_EXTRA, lo);
startService(myintent);
}catch (NullPointerException nullexception){
nullexception.printStackTrace();
}
}
});
}
我怎样才能做到这一点?提前感谢大家的帮助
【问题讨论】:
-
我认为您可以使用
FrameLayout为您的地图和标记设置overlap effect,然后调用onCameraChange和Geocoder函数。更多详情请参考here
标签: android google-maps google-maps-markers google-maps-api-2