直到我更改了包裹名称,所有设备都在我的设备上工作正常...一旦pkg被更改,相机就不会移动到初始latlng。此外,标记没有显示出来。
package com.vaishnavismeclass.divyadesammap.english;
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener;
import com.google.android.gms.maps.GoogleMap.OnMarkerClickListener;
import com.google.android.gms.maps.GoogleMapOptions;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.MapsInitializer;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import android.app.Activity;
import android.content.Intent;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity implements OnMarkerClickListener {
private GoogleMap mMap;
/*
* declaration of all the parameters
* to display paasurams
* on a list
* this will act as query critiera
*/
public final static String EXTRA_CATEGORY = "com.vaishnavismeclass.divyadesamsmap.englis.CATEGORY";
public final static String EXTRA_START = "com.vaishnavismeclass.divyadesamsmap.englis.START";
public final static String EXTRA_ENDING = "com.vaishnavismeclass.divyadesamsmap.englis.ENDING";
public final static String EXTRA_PASURAMNUMBER = "com.vaishnavismeclass.divyadesamsmap.englis.PASURAMNUMBER";
public final static String EXTRA_AAYIRAM = "com.vaishnavismeclass.divyadesamsmap.englis.AAYIRAM";
public final static String EXTRA_AZHWAAR = "com.vaishnavismeclass.divyadesamsmap.englis.AZHWAAR";
public final static String EXTRA_MANGALASASANAMON = "com.vaishnavismeclass.divyadesamsmap.englis.MANGALASASANAMON";
public final static String EXTRA_SUBCATEGORY = "com.vaishnavismeclass.divyadesamsmap.englis.SUBCATEGORY";
public final static String EXTRA_TITLE = "com.vaishnavismeclass.divyadesamsmap.englis.TITLE";
/*
*
* Define latlng
* of all the divyadesams
* with a variable
*/
static final LatLng lTiruSalagramam= new LatLng(28.816885 , 83.870814);
/*
*
* Define divyadesam string
* for passing to the database
* to query
*/
static final String mTiruSalagramam = "Tiru Salagramam";
/*
* Define markers
* as divyadesams without ( - and space
*
*/
Marker TiruSalagramam;
@Override
public boolean onMarkerClick(Marker marker) {
Intent intent = new Intent(getApplicationContext(),
Paasurams.class);
/*
* Create intent data
* and pass to respective
* pages
*/
Log.d("VC","Marker selected is "+marker.toString());
if (marker.equals(TiruSalagramam)){intent.putExtra(EXTRA_MANGALASASANAMON,mTiruSalagramam );}
startActivity(intent);
return false;
}
/* (non-Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Sets the map type to be "hybrid"
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
/*
*
* Setup my location
*
*
*/
if (mMap == null)
return; // Google Maps not available
try {
MapsInitializer.initialize(this);
}
catch (GooglePlayServicesNotAvailableException e) {
Log.e("VC", "Have GoogleMap but then error", e);
return;
}
mMap.setMyLocationEnabled(true);
// Getting LocationManager object from System Service LOCATION_SERVICE
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
// Creating a criteria object to retrieve provider
Criteria criteria = new Criteria();
// Getting the name of the best provider
String provider = locationManager.getBestProvider(criteria, true);
// Getting Current Location
Location location = locationManager.getLastKnownLocation(provider);
if(location!=null){
// Getting latitude of the current location
double latitude = location.getLatitude();
// Getting longitude of the current location
double longitude = location.getLongitude();
// Creating a LatLng object for the current location
LatLng latLng = new LatLng(latitude, longitude);
LatLng myPosition = new LatLng(latitude, longitude);
mMap.addMarker(new MarkerOptions().position(myPosition).title("Current Location"));
/*
* Show the location name
* on the marker always
*
*/
//TiruSalagramam.showInfoWindow();
/*
* Do basic setup if required
*/
setUpMapIfNeeded();
//
GoogleMapOptions options = new GoogleMapOptions();
options.mapType(GoogleMap.MAP_TYPE_SATELLITE)
.compassEnabled(true)
.rotateGesturesEnabled(true)
.tiltGesturesEnabled(true);
/*
* Focus camera to Nagpur
*/
CameraUpdate center=
CameraUpdateFactory.newLatLng(new LatLng(21.153889,
79.083056));
CameraUpdate zoom=CameraUpdateFactory.zoomTo(4);
mMap.moveCamera(center);
mMap.animateCamera(zoom);
/*
* customize the marker color
*/
TiruSalagramam= mMap.addMarker(new MarkerOptions().position(lTiruSalagramam).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)).title(mTiruSalagramam));
mMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
// TODO Auto-generated method stub
Intent intent = new Intent(getApplicationContext(),
Paasurams.class);
if (marker.equals(TiruSalagramam)){intent.putExtra(EXTRA_MANGALASASANAMON,mTiruSalagramam );}
startActivity(intent);
}
}
);
}
}
private void setUpMapIfNeeded() {
// TODO Auto-generated method stub
// Do a null check to confirm that we have not already instantiated the map.
if (mMap == null) {
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
// Check if we were successful in obtaining the map.
if (mMap != null) {
// The Map is verified. It is now safe to manipulate the map.
}
}
}
}
我删除了大多数其他标记和相关代码以适应大小。
清单是
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.vaishnavismeclass.divyadesammap.english"
android:versionCode="2"
android:versionName="2.2" >
<permission
android:name="com.vaishnavismeclass.divyadesammap.english.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
<uses-permission android:name="com.vaishnavismeclass.divyadesammap.english.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.vaishnavismeclass.divyadesammap.english.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.vaishnavismeclass.divyadesammap.english.Paasurams"
android:label="Paasurams"
android:parentActivityName="com.vaishnavismeclass.divyadesammap.english.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.vaishnavismeclass.divyadesammap.english.MainActivity" />
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyBWA65v6k62oLOD_20SiGYAo0x01F3OzAU" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
</manifest>
答案 0 :(得分:1)
更改包名称时,请确保生成新密钥并将新密钥复制到android清单,因为要显示映射,使用包名称的密钥。
修改强>
您遗失<uses-library android:name="com.google.android.maps" />
并使用
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="fill_parent"
android:layout_height="match_parent" />
在xml文件中显示地图
答案 1 :(得分:0)
试试吧...... 选择应用程序并转到项目并单击clean,然后构建它......
答案 2 :(得分:0)