我正在开发一个使用Zomato Api获取附近餐馆的应用程序。我有一个片段,它向用户显示了所单击餐厅的详细信息。我的目标是在地图上显示餐厅的位置,但我很难做到这一点,因为我会出错。它只在活动中起作用吗?我是否必须将层次结构更改为FragmentActivity?
public class RestaurantDetails extends Fragment implements onMapReadyCallback{
private final String APIKEY="75be9f9e2239fe637bf9cb1b46979d91";
private SupportMapFragment mMapFragment;
private GoogleMap mGoogleMap;
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View mContentView = inflater.inflate(R.layout.restaurant_details, container,false);
int id= Integer.parseInt(getArguments().getString("id"));
mMapFragment=getSupportFragmentManager().findFragmentById(R.id.map);
mMapFragment.getMapAsync(this);
getDetails(id);
return mContentView;
}
@Override
public void onMapReady(GoogleMap googleMap){
mGoogleMap=googleMap;
}
private void getDetails(int id) {
getApi().getRestaurantDetails(id, APIKEY)
.enqueue(new Callback<Restaurant_>() {
@Override
public void onResponse(Call<Restaurant_> call, Response<Restaurant_> response) {
addMarker( Double.parseDouble(response.body().getLocation().getLatitude()), Double.parseDouble(response.body().getLocation().getLongitude()),
response.body().getName());
}
@Override
public void onFailure(Call<Restaurant_> call, Throwable t) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage("Couldn´t load restaurant details");
AlertDialog mDialog = builder.create();
mDialog.show();
}
});
}
private void addMarker(double lat,double lon,String restaurantName){
LatLng latLng=new LatLng(lat,lon);
Marker marker=mGoogleMap.addMarker(new MarkerOptions()
.position(latLng)
.title(restaurantName));
}
private Retrofit getRetrofit() {
return new Retrofit.Builder()
.baseUrl("https://developers.zomato.com/api/v2.1/")
.addConverterFactory(GsonConverterFactory.create())
.build();
}
private ZomatoApi getApi() {
return getRetrofit().create(ZomatoApi.class);
}
}
我得到的错误是:
public class RestaurantDetails extends Fragment implements onMapReadyCallback
mMapFragment=getSupportFragmentManager().findFragmentById(R.id.map);
mMapFragment.getMapAsync(this);
可能您的mMapFraank
为空。确保它不为空。如果是,也许这个链接可能会有所帮助。
我制作了一个应用程序,在其中我显示了一个谷歌地图,在我的位置上有GPS定位标记。这张地图在第一个选项卡上,我还有两个其他选项卡,如下图所示 现在我面临一个问题,即当我从选项卡1移动到选项卡2,然后移动到选项卡1时,它工作得很好,但当我移动到选项卡3,然后再移回选项卡1或选项卡2时,应用程序崩溃,并在LogCat中出现以下异常: 它在以下点显示错误: 无论我选择任何选项卡,它都会在上面一行显示错误,
我正在寻找的是一种避免必须“手动”找到。有没有办法自动让地图以三个坐标为中心?
本文向大家介绍php使用google地图应用实例,包括了php使用google地图应用实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php使用google地图应用方法。分享给大家供大家参考。具体如下: php代码如下: html页面如下: 希望本文所述对大家的php程序设计有所帮助。
问题内容: 我正在尝试将Google Maps地理编码器与Python和JSON结合使用,但一直被告知我有一个错误的请求: 失败。 但是如果我只是复制粘贴 放入浏览器栏中,效果很好。 我的要求出了什么问题? 问题答案: 您需要一些URL引用编码,这可以工作: 行 加法= urllib2.quote(ADD) 是重要的一点。如果您使用的是非拉丁字符,则建议Google API需要UTF-8编码。
如何在react-google-maps中更改defaultCenter?我需要找到我的地理定位并更改缺省值lat和LNG。 接下来,我需要将数据传输到组件MapWithAMarker:ecenter={myLocation}和Marker position={myLocation}
请有人帮助我改变我的代码,使谷歌地图API能够请求一个地址在它的地方,因为我想读取地址的用户直接从mySQL数据库。