Enable / fix iOS module, closes #29

This commit is contained in:
Longri
2016-06-19 21:14:39 +02:00
committed by Emux
parent 2b171739aa
commit 11d7002841
14 changed files with 1519 additions and 306 deletions

View File

@@ -1,58 +1,70 @@
package org.oscim.ios;
import org.oscim.backend.GLAdapter;
import org.oscim.gdx.GdxMap;
import org.oscim.ios.backend.IosGLAdapter;
import org.oscim.ios.backend.IosGraphics;
import org.oscim.layers.tile.buildings.BuildingLayer;
import org.oscim.layers.tile.vector.VectorTileLayer;
import org.oscim.layers.tile.vector.labeling.LabelLayer;
import org.oscim.theme.VtmThemes;
import org.oscim.tiling.TileSource;
import org.oscim.tiling.source.oscimap4.OSciMap4TileSource;
import org.robovm.apple.glkit.GLKViewDrawableStencilFormat;
import org.robovm.cocoatouch.foundation.NSAutoreleasePool;
import org.robovm.cocoatouch.uikit.UIApplication;
import com.badlogic.gdx.backends.iosrobovm.IOSApplication;
import com.badlogic.gdx.backends.iosrobovm.IOSApplicationConfiguration;
import org.oscim.backend.CanvasAdapter;
import org.oscim.layers.tile.buildings.BuildingLayer;
import org.oscim.layers.tile.vector.VectorTileLayer;
import org.oscim.layers.tile.vector.labeling.LabelLayer;
import org.oscim.map.Map;
import org.oscim.theme.VtmThemes;
import org.oscim.tiling.source.oscimap4.OSciMap4TileSource;
import org.robovm.apple.foundation.NSAutoreleasePool;
import org.robovm.apple.glkit.GLKViewDrawableStencilFormat;
import org.robovm.apple.uikit.UIApplication;
import org.robovm.apple.uikit.UIDevice;
import org.robovm.apple.uikit.UIScreen;
public class RobovmLauncher extends IOSApplication.Delegate {
@Override
protected IOSApplication createApplication() {
IOSApplicationConfiguration config = new IOSApplicationConfiguration();
config.orientationLandscape = true;
config.orientationPortrait = true;
config.stencilFormat = GLKViewDrawableStencilFormat._8;
return new IOSApplication(new GdxMap() {
@Override
public void createLayers() {
TileSource tileSource = new OSciMap4TileSource();
@Override
protected IOSApplication createApplication() {
//initDefaultLayers(tileSource, false,true, false);
VectorTileLayer l = mMap.setBaseMap(tileSource);
mMap.setTheme(VtmThemes.NEWTRON);
mMap.layers().add(new BuildingLayer(mMap, l));
mMap.layers().add(new LabelLayer(mMap, l));
IOSApplicationConfiguration config = new IOSApplicationConfiguration();
config.orientationLandscape = true;
config.orientationPortrait = true;
config.stencilFormat = GLKViewDrawableStencilFormat._8;
// mMap.getLayers().add(new GenericLayer(mMap, new
// GridRenderer(1,new Line(Color.LTGRAY, 1.2f),null)));
float scale = (float)(getIosVersion() >= 8 ? UIScreen.getMainScreen().getNativeScale() : UIScreen.getMainScreen()
.getScale());
mMap.setMapPosition(53.1, 8.8, 1 << 14);
}
CanvasAdapter.dpi *= scale;
}, config);
}
IOSMapApp iosMapApp = new IOSMapApp() {
@Override
public void createLayers() {
Map map = getMap();
public static void main(String[] argv) {
NSAutoreleasePool pool = new NSAutoreleasePool();
System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "TRACE");
IosGraphics.init();
GLAdapter.init(new IosGLAdapter());
VectorTileLayer l = map.setBaseMap(new OSciMap4TileSource());
UIApplication.main(argv, null, RobovmLauncher.class);
pool.drain();
}
map.layers().add(new BuildingLayer(map, l));
map.layers().add(new LabelLayer(map, l));
map.setTheme(VtmThemes.DEFAULT);
map.setMapPosition(53.075, 8.808, 1 << 17);
}
};
IOSMapApp.init();
return new IOSApplication(iosMapApp, config);
}
private int getIosVersion () {
String systemVersion = UIDevice.getCurrentDevice().getSystemVersion();
return Integer.parseInt(systemVersion.split("\\.")[0]);
}
public static void main(String[] argv) {
NSAutoreleasePool pool = new NSAutoreleasePool();
System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "TRACE");
IOSMapApp.init();
UIApplication.main(argv, null, RobovmLauncher.class);
pool.drain();
}
}