android - 在给定名称/Google Maps URL 的地方放置位置图钉?
问题描述
我的应用程序中有一个 MapView,我可以毫无问题地加载它,并将位置图钉放置在某个经度和纬度上。
这是我使用的代码:
private MapView mapView;
private GoogleMap gmap;
gmap = googleMap;
gmap.setMinZoomPreference(17);
UiSettings uiSettings = gmap.getUiSettings();
uiSettings.setCompassEnabled(true);
uiSettings.setZoomControlsEnabled(true);
LatLng ny = new LatLng(40.7143528, -74.0059731);
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(ny);
gmap.addMarker(markerOptions);
gmap.moveCamera(CameraUpdateFactory.newLatLng(ny));
它运作良好。地图加载和手势并启用。大头针也会落在指定的纬度和经度上。
但是,我想改变这一点。我希望根据地点名称(例如帝国大厦)或 URL(http://maps.google.com/?q=Empire%20State%20Building)删除图钉。但是,在花时间浏览互联网和文档后,似乎设置 pin 的唯一方法是通过 LatLng 对象。
虽然我对使用 Lat 和 Long 没有强烈反对意见,但我更喜欢使用可识别名称或地点本身的 URL,因为它会使数据库更易于阅读。
有没有人使用名称或 Google Maps url 成功设置了 pin?
解决方案
我可以看到的一种解决方案是使用Geocoding API将地点名称转换为经纬度。
使用地理编码,我们将能够将地址(如“1600 Amphitheatre Parkway, Mountain View, CA”)转换为地理坐标(如纬度 37.423021 和经度 -122.083739),您可以使用该信息在地图上放置标记。
推荐阅读
- php - 无法使用 Symfony Guard 登录,可能是因为 cookie 和多域
- node.js - 如何从 Azure 函数进行 https 调用?
- php - PHP 7 - 在回调中迭代地填充多级数组
- amazon-sagemaker - XGBoost 模型的 CSV 字符串数据格式
- c - 如何使用 ffmpeg (C) 获取视频的 GOP 大小?
- angular - mat-table 不会呈现我的 Observable
使用mergeMap时 - javascript - 是否有更多的 JavaScript 方法来处理压缩两个数组而不是使用 for 循环?
- c# - Unity中鼠标查看脚本中的偏移量
- node.js - 使用 Passport.js ActiveDirectory 进行身份验证不会维护会话
- python - Local Outlier Factor 的 n_neighbor 参数对 ROC-AUC 的影响