【发布时间】:2015-03-26 09:25:02
【问题描述】:
首先抱歉我的英语不好,我正在研究谷歌地图,我是第一次在谷歌地图上工作,我的问题是我从服务器端获取一个数组,在这个数组中我得到了城市,名称,纬度,经度等。 我的数组如下:
city,name,21.22,22.33,city,name,24.44,25.55,city,name,32.222,38.88
我想代表我的纬度、经度将标记放在谷歌地图上,正如您在我的数组上看到的那样,在我的第一个索引上,我得到城市、名称和纬度、经度,然后是第二个位置纬度、经度,城市和名称等。请帮助我如何在谷歌地图上实现标记?将不胜感激。
我的地图活动:
public class MapActivity extends ActionBarActivity {
// Google Map
private GoogleMap googleMap;
double stringLatitude;
double stringLongitude;
String frenchiseLocationArray;
String ServiceCentreLocationArray;
private ArrayList<String> AssociatedArray = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.googlemap);
setupActionBarBackPressed();
frenchiseLocationArray = getIntent().getExtras().getString(
"frenchiseLocationArray");
ServiceCentreLocationArray = getIntent().getExtras().getString(
"ServiceCentreLocationArray");
Toast.makeText(
getApplicationContext(),
"frenchise " + frenchiseLocationArray + "\n"
+ " service centre " + ServiceCentreLocationArray,
Toast.LENGTH_SHORT).show();
// separate the strings by comma
StringTokenizer st = new StringTokenizer(frenchiseLocationArray, ",");
/* List myArray = new ArrayList<String>(); */
String token = null;
while (st.hasMoreTokens()) {
token = st.nextToken();
AssociatedArray.add(token);
}
Log.d("map", "frenchise location array = " + AssociatedArray);
if (AssociatedArray != null) {
if (AssociatedArray.size() > 0) {
for (int a = 0; a < AssociatedArray.size(); a = a + 2) {
// Log.d("map", "frenchise location array = " + AssociatedArray);
}
}
}
try {
// check if GPS enabled
GPSTracker gpsTracker = new GPSTracker(this);
if (gpsTracker.canGetLocation()) {
stringLatitude = Double.valueOf(gpsTracker.latitude);
stringLongitude = Double.valueOf(gpsTracker.longitude);
} else {
gpsTracker.showSettingsAlert();
}
// Loading map
initilizeMap();
googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
// Showing / hiding your current location
googleMap.setMyLocationEnabled(true);
// Enable / Disable zooming controls
googleMap.getUiSettings().setZoomControlsEnabled(false);
// Enable / Disable my location button
googleMap.getUiSettings().setMyLocationButtonEnabled(true);
// Enable / Disable Compass icon
googleMap.getUiSettings().setCompassEnabled(true);
// Enable / Disable Rotate gesture
googleMap.getUiSettings().setRotateGesturesEnabled(true);
// Enable / Disable zooming functionality
googleMap.getUiSettings().setZoomGesturesEnabled(true);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onResume() {
super.onResume();
initilizeMap();
}
/**
* function to load map If map is not created it will create it for you
* */
private void initilizeMap() {
if (googleMap == null) {
googleMap = ((MapFragment) getFragmentManager().findFragmentById(
R.id.map)).getMap();
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
}
/*
* creating random postion around a location for testing purpose only
*/
private double[] createRandLocation(double latitude, double longitude) {
return new double[] { latitude + ((Math.random() - 0.5) / 500),
longitude + ((Math.random() - 0.5) / 500),
150 + ((Math.random() - 0.5) * 10) };
}
public void setupActionBarBackPressed() {
ActionBar actionBar = getSupportActionBar();
actionBar.setLogo(R.drawable.ic_launcher);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true); // BACK BUTTON ENABLED
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
// NavUtils.navigateUpFromSameTask(this);
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
已编辑: 这就是我的数组,我在其中获取 AssociatedArray 中的值。
Log.d("map", "frenchise location array = " + AssociatedArray);
if (AssociatedArray != null) {
if (AssociatedArray.size() > 0) {
for (int a = 0; a < AssociatedArray.size(); a = a + 2) {
Log.d("map", "frenchise location array = " + AssociatedArray);
}
}
【问题讨论】:
-
请关注我编辑的帖子。
-
我正在编辑代码,请按照我将值放入 ArrayList 的方式进行操作。
-
我这样做,请参阅我的帖子编辑部分
标签: android google-maps google-maps-api-3