问题描述
这是我的示例,我点击地图以获取点击的点坐标并发送搜索请求以了解有关该地点的更多详细信息,例如城市、街道。但响应始终为空值。
public class MainActivity extends AppCompatActivity implements CameraListener,InputListener,Session.SearchListener {
private ActivityMainBinding binding;
private SearchManager searchManager;
private Session searchSession;
private SearchOptions searchOptions;
private MapObjectCollection mapObjectCollection;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MapKitFactory.setApiKey("your api key");
MapKitFactory.initialize(this);
searchOptions = new SearchOptions();
searchOptions.setSearchTypes(SearchType.GEO.value);
searchOptions.setGeometry(true);
binding = DataBindingUtil.setContentView(this,R.layout.activity_main);
binding.mapview.getMap().setNightModeEnabled((getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES);
searchManager = SearchFactory.getInstance().createSearchManager(SearchManagerType.COMBINED);
binding.mapview.getMap().addCameraListener(this);
binding.mapview.getMap().addInputListener(this);
mapObjectCollection = binding.mapview.getMap().getMapObjects();
binding.mapview.getMap().move(
new CameraPosition(new Point(55.751574,37.573856),11.0f,0.0f,0.0f),new Animation(Animation.Type.SMOOTH,0),null);
}
@Override
protected void onStop() {
super.onStop();
binding.mapview.onStop();
MapKitFactory.getInstance().onStop();
}
@Override
protected void onStart() {
super.onStart();
binding.mapview.onStart();
MapKitFactory.getInstance().onStart();
}
public void submitQueryByName(String query) {
searchSession = searchManager.submit(
query,Geometry.fromPoint(new Point(40.177200,44.503490)),searchOptions,this);
}
public void submitQueryByPoint(Point point) {
searchSession = searchManager.submit(
point,11,this);
}
@Override
public void onCameraPositionChanged(@NonNull Map map,@NonNull CameraPosition cameraPosition,@NonNull CameraUpdateReason cameraUpdateReason,boolean finished) {
Log.e("onCameraPositionChanged"," cameraPosition: "+cameraPosition+" cameraUpdateReason: "+cameraUpdateReason+" finished: "+finished);
}
@Override
public void onMapTap(@NonNull Map map,@NonNull Point point) {
MapObjectCollection mapObjects = binding.mapview.getMap().getMapObjects();
mapObjects.clear();
PlacemarkMapObject placemarkMapObject = mapObjectCollection.addplacemark(new Point(point.getLatitude(),point.getLongitude()),ImageProvider.fromresource(this,R.mipmap.marker_flag));
submitQueryByPoint(point);
Log.e("onMapTap","point lat - lang: " + point.getLatitude() + " : " + point.getLongitude());
}
@Override
public void onMapLongTap(@NonNull Map map,@NonNull Point point) {
Log.e("onMapLongTap","onMapLongTap");
}
@Override
public void onSearchResponse(@NonNull Response response) {
try {
Log.e("Search","Response: " + response);
} catch (NullPointerException e) {
e.printstacktrace();
}
}
@Override
public void onSearchError(@NonNull Error error) {
String errorMessage = "unkNown_error_message";
if (error instanceof RemoteError) {
errorMessage = "remote_error_message";
} else if (error instanceof NetworkError) {
errorMessage = "network_error_message";
}
Log.e("Response error"," error: " + errorMessage);
}
}
在onMapTap方法中,我得到了被敲击的点坐标并按点发送搜索请求
@Override
public void onMapTap(@NonNull Map map,"point lat - lang: " + point.getLatitude() + " : " + point.getLongitude());
}
**响应始终为空值。我做错了什么?
这是此示例的 GitHub 整个项目 https://github.com/davmehrabyan/YandexMapSearch **
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)