我有一个用户可以选择位置的应用。地图首先以GPS位置为中心,但用户也可以在搜索栏中拖动标记或类型。这些都可以工作,但我发现一个奇怪的问题,标记没有立即更新。
它正在更新,它只落后一步......
继承我onMarkerDragEnd的代码:
@Override
public void onMarkerDragEnd(Marker marker) {
//mLocMarker = marker; // this has no effect
mLocMarker.setIcon(BitmapDescriptorFactory.defaultMarker());
mLocMarker.showInfoWindow();
LatLng mPos = mLocMarker.getPosition();
LatLng[] coordinates = new LatLng[kmlCoordinates.size()];
coordinates = kmlCoordinates.toArray(coordinates);
if (BorderPatrol.PointIsInRegion(mPos, coordinates)) {
try {
mAddress = getNearestStreetAddress(mPos);
markerTitle = mAddress.getAddressLine(0);
Log.d(TAG, "DRAG: Valid Address is " + mAddress.getAddressLine(0));
isValidAddress = true;
} catch (IOException e) {
e.printStackTrace();
}
}
else {
markerTitle = "Out of Delivery Zone";
markerSnippet = "Hold and drag to change location";
Log.d(TAG, "Out of Delivery Zone: " + mPos);
isValidAddress = false;
}
mLocMarker.setTitle(markerTitle);
mLocMarker.setSnippet(markerSnippet);
float mZoom = map.getCameraPosition().zoom;
CameraUpdate mLoc = CameraUpdateFactory.newCameraPosition(new CameraPosition.Builder().target(mPos).zoom(mZoom).build());
map.moveCamera(mLoc);
}
所以,mLocMarker是我在这里尝试更新的单一全局标记变量。
边界巡逻方法中的日志每次都会触发 - 它返回一个地址并记录它。但是,Title和Snippet不会更新 - 或者,它们只是一个事件背后。
我完全难过了!
答案 0 :(得分:2)
解决了......
我每次都没有打电话给if(ajax){
User user = userTemplate.getUser(form.getCreator_id());
int isPremium = user.getPremium();
if ( isPremium == 1 ){
Map<String,String> resultMap = new HashMap<String,String>();
response.setHeader("Access-Control-Allow-Headers", "*");
response.addHeader("Access-Control-Allow-Origin", "*");
resultMap.put("result", "success");
return new Gson().toJson(resultMap);
}else{
return "redirect:/f/redirectedUrl?url="+form.getWeb_page();
}
}
- 我不认为我必须这样做,因为这是一个全局变量,我在设置时调用它,但那就是问题!