如何通过单击先前活动的按钮来显示特定城市的地图..例如:在活动一中,我在edittext中键入纽约并单击按钮,它打开了包含地图的活动二并指向纽约市...我还想用不同的标记来展示纽约的旅游景点....有人可以告诉我一个方法或tut这个..提前谢谢
我已经完成了显示附近位置的地图,尽管它没有更新位置.. :( 任何帮助都将不胜感激
如何通过单击先前活动的按钮来显示特定城市的地图..例如:在活动一中,我在edittext中键入纽约并单击按钮,它打开了包含地图的活动二并指向纽约市...我还想用不同的标记来展示纽约的旅游景点....有人可以告诉我一个方法或tut这个..提前谢谢
我已经完成了显示附近位置的地图,尽管它没有更新位置.. :( 任何帮助都将不胜感激
最简单的方法是将城市名称传递给 Map 活动。
在活动一中执行以下操作:
Intent i = new Intent(getApplicationContext(), MapActivity.class);
i.putExtra("location","New York");
startActivity(i);
要检索值,请在 Map 活动中执行以下操作:
String location = getIntent().getExtras().getString("location");
您在一个问题中提出了很多问题。
要通过地址查找城市并将其显示在您需要创建Geocoder
的城市坐标的地图上,您可以查看本教程:
这是一个 AsyncTask 代码片段,用于访问 Geocoder 服务:
// An AsyncTask class for accessing the GeoCoding Web Service
private class GeocoderTask extends AsyncTask<String, Void, List<Address>>{
@Override
protected List<Address> doInBackground(String... locationName) {
// Creating an instance of Geocoder class
Geocoder geocoder = new Geocoder(getBaseContext());
List<Address> addresses = null;
try {
// Getting a maximum of 3 Address that matches the input text
addresses = geocoder.getFromLocationName(locationName[0], 3);
} catch (IOException e) {
e.printStackTrace();
}
return addresses;
}
@Override
protected void onPostExecute(List<Address> addresses) {
if(addresses==null || addresses.size()==0){
Toast.makeText(getBaseContext(), "No Location found", Toast.LENGTH_SHORT).show();
}
// Clears all the existing markers on the map
googleMap.clear();
// Adding Markers on Google Map for each matching address
for(int i=0;i<addresses.size();i++){
Address address = (Address) addresses.get(i);
// Creating an instance of GeoPoint, to display in Google Map
latLng = new LatLng(address.getLatitude(), address.getLongitude());
String addressText = String.format("%s, %s",
address.getMaxAddressLineIndex() > 0 ? address.getAddressLine(0) : "",
address.getCountryName());
markerOptions = new MarkerOptions();
markerOptions.position(latLng);
markerOptions.title(addressText);
googleMap.addMarker(markerOptions);
// Locate the first location
if(i==0)
googleMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
}
}
}
现在对于旅游景点,您将不得不查询某种服务,该服务将为您提供此类信息,解析它并将其显示在地图上。