シンガポールの OneMap サーバーをベースマップとして ESRI Android SDK を使用しています。マップのロケーション サービスを開始すると、無効な SpatialReference が原因で、正確な円によって例外が発生します。
Could not update the active symbol
java.lang.RuntimeException: Invalid SpatialReference.
at com.esri.core.geometry.SpatialReference.nativeGetUnit(Native Method)
at com.esri.core.geometry.SpatialReference.getUnit(Unknown Source)
at com.esri.android.map.LocationService$a.k(Unknown Source)
at com.esri.android.map.LocationService$a$a.onLocationChanged(Unknown Source)
私のコードは次のとおりです
map = (MapView) view.findViewById(R.id.map);
basemap = new ArcGISTiledMapServiceLayer
("http://e1.onemap.sg/arcgis/rest/services/SM128/MapServer");
map.addLayer(basemap);
map.setOnStatusChangedListener(new OnStatusChangedListener()
{
private static final long serialVersionUID = 1L;
@Override
public void onStatusChanged(Object source, STATUS status) {
if (OnStatusChangedListener.STATUS.INITIALIZED ==
status && source == map)
{
//Start location service
LocationService ls = map.getLocationService();
ls.setLocationListener(new LocationListener(){
@Override
public void onLocationChanged(Location location) {
// Do something
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider,
int status, Bundle extras) {
// TODO Auto-generated method stub
}
});
ls.start();
}
}
この問題は、精度サークルが無効になっている場合は発生しませんが、私の場合は有効にする必要があります。
どんな助けでも大歓迎です。