MapQuest(Android SDK):在地图上放置一个pin并自动打开一个窗口
我正在应用程序中使用MapQuest Android SDK。 我有一个场景,我在地图上放置了一个pin,我想在窗口中自动打开一个pin 我正在使用MapboxMap.InfoWindowAdapter和方法getInfoWindow(Marker-Marker)。我在这里的问题是,如何在我放下别针后自动打开窗口 我想在掉了别针后自动打开窗户 这是我的密码:MapQuest(Android SDK):在地图上放置一个pin并自动打开一个窗口,android,maps,mapbox,infowindow,mapquest,Android,Maps,Mapbox,Infowindow,Mapquest,我正在应用程序中使用MapQuest Android SDK。 我有一个场景,我在地图上放置了一个pin,我想在窗口中自动打开一个pin 我正在使用MapboxMap.InfoWindowAdapter和方法getInfoWindow(Marker-Marker)。我在这里的问题是,如何在我放下别针后自动打开窗口 我想在掉了别针后自动打开窗户 这是我的密码: @Override public void onResume() { super.on
@Override
public void onResume() {
super.onResume();
//This is where I pass my poi from poiSearchListview Fragment to my Map Fragment through Activity. So On onResume() if will call this method.
if (null != getActivity.getPoiFields()) {
fromSearchFrag = true;
addPoiMarker(getActivity.getPoiFields());
}
}
这是我的OnCreateView()方法:
}))
这是我在OnResume()上添加地图标记的方法
您是否尝试在
标记上调用该方法?您是否尝试在标记上调用该方法?尝试使用mapboxMap.selectMarker()
传递要选择的标记
编辑:我修改了演示应用程序示例,以生成您在下面的评论中提到的两种场景。我模拟场景1,只需单击贴图(不设置标记放置动画),这将调用mapboxMap.selectMarker()
,并按预期显示自定义信息窗口。当单击标记图标时,场景2也按预期工作
如果我仍然不理解该问题,请提供该问题的其他代码和图片/视频/GIF。尝试使用mapboxMap.selectMarker()
传入要选择的标记
编辑:我修改了演示应用程序示例,以生成您在下面的评论中提到的两种场景。我模拟场景1,只需单击贴图(不设置标记放置动画),这将调用mapboxMap.selectMarker()
,并按预期显示自定义信息窗口。当单击标记图标时,场景2也按预期工作
如果我仍然不理解该问题,请提供该问题的其他代码和图片/视频/GIF。我有两个片段,一个是地图视图片段,另一个是带位置的列表视图。当我在列表视图中选择项目时,pin将被放置在地图上。当我单击地图上的pin时,我调用'showInfoWindow()`。但我的问题是,当我从列表视图的onItemClick中点击pin时,立即打开信息窗口?我有两个片段,一个是地图视图片段,另一个是带位置的列表视图。当我在列表视图中选择项目时,pin将被放置在地图上。当我单击地图上的pin时,我调用'showInfoWindow()`。但我的问题是,当我从列表视图的onItemClick中点击pin时,立即打开信息窗口?太棒了。。我是否可以自己打开一个自定义窗口。现在使用mapboxMap.selectMarker()编写,我可以打开本机窗口。通过自定义窗口,我假设您指的是信息窗口?它应该和默认的信息窗口一样长。如果不让我知道,我可以进一步了解。对不起,我一直按enter键。当我放下pin时,当我点击pin时..我正在为我的窗口使用自定义布局,并以这种方式显示:-mMapboxMap.setInfoWindowAdapter(new MapboxMap.InfoWindowAdapter(){@Override public View getInfoWindow(Marker Marker){**这里我正在扩展我的自定义视图**
当我放下pin码时,我想用同样的方法为自定义窗口充气。通过使用mapboxMap.selectMarker()并添加标记来显示窗口(本机)使用名称。我是否可以显示自定义窗口?我已经使用了与我在点击pin时相同的方法?我不确定我是否理解您的问题,但您可以首先确保设置infoWindowAdapter,然后选择标记。听起来您的操作顺序不对。好的,让我再清楚地解释一遍。注意:-我有自己的操作n带有图标、按钮和来自POI的**地址**的信息窗口。我有两种情况1.我从POI搜索>中删除pin,它应该会删除pin并显示我的自定义信息窗口。2.当我在地图上并且有pin时,用户可以点击它来查看窗口,并点击地图上的任何地方,它就会消失。我可以在getInfoWindow中执行第二种情况(Marker Marker)。但是在第一个场景中,我放下pin,它应该会在放下pin时自动显示我的自定义窗口。selectMarker()会打开一个NativeWindowAweasome。我是否可以自己打开一个自定义窗口。现在使用mapboxMap.selectMarker()编写,我可以打开本机窗口。自定义窗口我想你是指信息窗口?它的工作时间应该与默认信息窗口的工作时间相同。如果不让我知道,我可以进一步了解。对不起,我一直按enter。当我放下pin时,当我点击pin时。我正在为我的窗口使用自定义布局,并以这种方式显示:-mMapboxMap.setInfoWindowAdapter(新MapboxMap.InfoWindowAdapter(){@Override public View getInfoWindow(Marker Marker){**这里我正在膨胀我的自定义视图**}
就像我想在放下pin时膨胀我的自定义窗口一样。通过使用MapboxMap.selectMarker()并添加标记,我可以看到窗口(本机)使用名称。我是否可以显示自定义窗口?我已经使用了与我在点击pin时相同的方法?我不确定我是否理解您的问题,但您可以首先确保设置infoWindowAdapter,然后选择标记。听起来您的操作顺序不对。好的,让我再清楚地解释一遍。注意:-我有自己的操作n带有图标、按钮和来自POI的**地址**的信息窗口。我有两种情况1.我从POI搜索>中删除pin,它应该会删除pin并显示我的自定义信息窗口。2.当我在地图上并且有pin时,用户可以点击它来查看窗口,并点击地图上的任何地方,它就会消失。我可以在getInfoWindow中执行第二种情况(Marker Marker)。但是在第一种情况下,当我放下pin时,它会自动显示我的自定义窗口。selectMarker()不会打开一个nativewindow
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.map, container, false);
mMapView.getMapAsync(new OnMapReadyCallback() {
mPoiFields.clear();
if (null != getActivity.getPoiFields()) {
fromSearch = true;
addPoiMarker(getActivity.getPoiFields());
}
mMapboxMap.setInfoWindowAdapter(new MapboxMap.InfoWindowAdapter() {
@Nullable
@Override
public View getInfoWindow(@NonNull Marker marker) {
View customView = null;
**//Here I have my own window my own images, texts and buttons.**
return custom view;
}
});
}
public void addPoiMarker(Fields poiFields) {
final String name = poiFields.getName();
poiAddress = poiFields.getAddress() + ", " + poiFields.getCity() + ", " + poiFields.getState();
Drawable iconDrawable = ContextCompat.getDrawable(getActivity(), R.drawable.pointofinterest);
Icon icon = IconFactory.getInstance(getActivity()).fromDrawable(iconDrawable);
if (mMapboxMap != null) {
mMapboxMap.removeAnnotations(); // TO remove all the markers before dropping the Address marker from search.
markerOptions = new MarkerOptions().icon(icon).position(
new LatLng(poiFields.getLat(), poiFields.getLng())).title(name);
mSearchResultMarker = mMapboxMap.addMarker(markerOptions);
mPoiFields.put(mSearchResultMarker, poiFields);
// mMapboxMap.selectMarker(mSearchResultMarker);
// **IF I use selectMarker it shows just the address on the window and
not my custom window.
I want to show my custom info window here as selectMarker doesn't clear my issue, what to do ?**.
}
zoomToPin(poiFields.getLat(), poiFields.getLng());
}