我开发了一个实时GPS定位跟踪系统,该系统将与GPS设备集成的移动设备将定位信息发送到数据库中的web服务器,并通过调用函数周期性绘制地图中的数据,在特定的时间间隔上反复调用函数,在Google中绘制位置信息。
在用户端,我们可以查看位置更新,如绘图仪、闪烁和更改Google中的位置。
有没有其他最好的方法来显示谷歌地图上的实时全球定位系统?
有什么方法可以让绘图仪不眨眼地移动,就像不断地流过地图一样?
任何一段代码都是非常感谢的&谢谢。
发布于 2016-01-18 11:47:54
我建议您将位置历史存储在数据库中,使其持续时间较短,并将其命名为位置帧。现在,您有一个从和协调位置,以移动您的策划者在地图上。当绘图仪接近上一帧的目的地时,通过设置新帧的应用频率来更新帧。在这个逻辑上建立程序。希望它有所帮助:)
发布于 2014-07-09 18:22:20
我把这个代码实现到一个服务中,它只得到坐标.他们从来没有被渲染成任何地图..。
private class LocationListener implements android.location.LocationListener {
Location mLastLocation;
public LocationListener(String provider) {
Log.e(TAG, "LocationListener " + provider);
mLastLocation = new Location(provider);
}
@Override
public void onLocationChanged(Location location) {
sLat = Double.toString(location.getLatitude());
sLong = Double.toString(location.getLongitude());
Speed = Double.toString(location.getSpeed());
sAlt = Double.toString(location.getAltitude());
sTime = Double.toString(location.getTime());
Log.e(TAG, "onLocationChanged: " + location + localTime);
mLastLocation.set(location);
}
@Override
public void onProviderDisabled(String provider) {
Log.e(TAG, "onProviderDisabled: " + provider);
}
@Override
public void onProviderEnabled(String provider) {
Log.e(TAG, "onProviderEnabled: " + provider);
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
Log.e(TAG, "onStatusChanged: " + provider);
}
}
LocationListener[] mLocationListeners = new LocationListener[]{
new LocationListener(LocationManager.GPS_PROVIDER),
new LocationListener(LocationManager.NETWORK_PROVIDER)
};
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.e(TAG, "onStartCommand");
super.onStartCommand(intent, flags, startId);
return START_STICKY;
}
@Override
public void onCreate() {
Log.e(TAG, "onCreate");
initializeLocationManager();
try {
mLocationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, LOCATION_INTERVAL, LOCATION_DISTANCE,
mLocationListeners[1]);
} catch (java.lang.SecurityException ex) {
Log.i(TAG, "fail to request location update, ignore", ex);
} catch (IllegalArgumentException ex) {
Log.d(TAG, "network provider does not exist, " + ex.getMessage());
}
try {
mLocationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, LOCATION_INTERVAL, LOCATION_DISTANCE,
mLocationListeners[0]);
} catch (java.lang.SecurityException ex) {
Log.i(TAG, "fail to request location update, ignore", ex);
} catch (IllegalArgumentException ex) {
Log.d(TAG, "gps provider does not exist " + ex.getMessage());
}
TelephonyManager mngr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
IMEI = mngr.getDeviceId();
}
@Override
public void onDestroy() {
Log.e(TAG, "onDestroy");
super.onDestroy();
if (mLocationManager != null) {
for (int i = 0; i < mLocationListeners.length; i++) {
try {
mLocationManager.removeUpdates(mLocationListeners[i]);
} catch (Exception ex) {
Log.i(TAG, "fail to remove location listners, ignore", ex);
}
}
}
}
private void initializeLocationManager() {
Log.e(TAG, "initializeLocationManager");
if (mLocationManager == null) {
mLocationManager = (LocationManager) getApplicationContext().getSystemService(Context.LOCATION_SERVICE);
}
}}
https://stackoverflow.com/questions/24660339
复制相似问题