Вам не нужно расширять com.google.android.maps.GeoPoint, чтобы иметь сериализуемый объект для хранения координат широты и долготы.
И поскольку вы не являетесь владельцем исходного объекта, вам не следует этого делать, потому что, если Google решит изменить исходную GeoPoint и скажем ... добавлять / удалять методы, изменять сигнатуры методов и т. Д. ... вы можете попасть в неприятности.
Что еще хуже, ваш код не будет переносимым, FYI Android на Kindle Fire не имеет доступа к API Карт Google, поэтому ваше приложение, начиная с com.google.android.maps.GeoPoint, не будет работать.
Для этого нужно создать Сериализуемый POJO с теми же точными свойствами (и его типами) для хранения координат широты / долготы, которые вы будете сериализовать:
package com.yourapp.beans;
public class YourGeoPoint implements Serializable {
private static final long serialVersionUID = -99127398709809L;
private int latitudeE6;
private int longitudeE6;
public YourGeoPoint() {
this.setLatitudeE6(0);
this.setLongitudeE6(0);
}
public YourGeoPoint(int latitudeE6, int longitudeE6) {
this.setLatitudeE6(latitudeE6);
this.setLongitudeE6(longitudeE6);
}
public int getLatitudeE6() {
return latitudeE6;
}
public void setLatitudeE6(int latitudeE6) {
this.latitudeE6 = latitudeE6;
}
public int getLongitudeE6() {
return longitudeE6;
}
public void setLongitudeE6(int longitudeE6) {
this.longitudeE6 = longitudeE6;
}
}
Тогда всякий раз, когда вам нужен com.google.android.maps.GeoPoint ... и после десериализации вашего экземпляра GeoPoint, просто выполните:
import com.google.android.maps.GeoPoint;
import com.yourapp.beans.YourGeoPoint;
//...
YouGeoPoint yourGeoPoint = // De-serialization...
GeoPoint geoPoint = new GeoPoint(yourGeoPoint.getLatitudeE6(), yourGeoPoint.getLongitudeE6());
Это работает на 100%, и ваш код будет переносимым на устройства Android, где API Google Maps не существует ... в этом случае просто импортируйте все библиотеки карт, к которым у вас есть доступ (например, ESRI или OpenSignalMaps) и получите одну из их «GeoPoints» или эквивалентный объект с координатами, исходящими от вашего собственного десериализованного объекта.
Ура!