整個國家參考:突出顯示在谷歌地圖Android版
Highlight whole countries in Google Maps
我試圖通過在谷歌地圖Android應用的用戶返回選定國的位置。
就像這樣,但在Android谷歌地圖。有沒有可能在android中做到這一點?
離線做這件事可能嗎?
整個國家參考:突出顯示在谷歌地圖Android版
Highlight whole countries in Google Maps
我試圖通過在谷歌地圖Android應用的用戶返回選定國的位置。
就像這樣,但在Android谷歌地圖。有沒有可能在android中做到這一點?
離線做這件事可能嗎?
關於在谷歌地圖API的國家或其他特徵的邊界問題被問了很多次,但是,遺憾的是谷歌不公開公開此數據。
要突出顯示該國家,您應該將自己的數據作爲Google地圖圖層應用。尼斯的工作圍繞在以下答案
https://stackoverflow.com/a/40172098/5140781
您可以從OSM下載國界在GeoJSON格式導出建議。之後,您可以使用Google Maps Android API Utility Library在您的應用程序中添加GeoJsonLayer。
對於我的示例,我以GeoJSON格式下載了西班牙的邊界,並使用GeoJsonLayer加載了GeoJSON文件。
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.getUiSettings().setZoomControlsEnabled(true);
LatLng madrid = new LatLng(40.416775,-3.70379);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(madrid, 3F));
try {
GeoJsonLayer layer = new GeoJsonLayer(mMap, R.raw.es_geojson, getApplicationContext());
GeoJsonPolygonStyle style = layer.getDefaultPolygonStyle();
style.setFillColor(Color.MAGENTA);
style.setStrokeColor(Color.MAGENTA);
style.setStrokeWidth(1F);
layer.addLayerToMap();
} catch (IOException ex) {
Log.e("IOException", ex.getLocalizedMessage());
} catch (JSONException ex) {
Log.e("JSONException", ex.getLocalizedMessage());
}
}
}
您可以從GitHub上的完整的示例項目,不要忘記改變值API密鑰/ google_maps_api.xml
https://github.com/xomena-so/so41431384
我希望這有助於!
相關:http://stackoverflow.com/questions/2931281/open-local-kml-file-in-google-maps-on-android –