Fix railway rendering
This commit is contained in:
parent
b447b247bf
commit
507d0a3a16
4 changed files with 35 additions and 18 deletions
|
@ -730,11 +730,11 @@ public class IndexCreator {
|
||||||
public static void main(String[] args) throws IOException, SAXException, SQLException, InterruptedException {
|
public static void main(String[] args) throws IOException, SAXException, SQLException, InterruptedException {
|
||||||
long time = System.currentTimeMillis();
|
long time = System.currentTimeMillis();
|
||||||
IndexCreator creator = new IndexCreator(new File("/home/victor/projects/OsmAnd/data/osm-gen/")); //$NON-NLS-1$
|
IndexCreator creator = new IndexCreator(new File("/home/victor/projects/OsmAnd/data/osm-gen/")); //$NON-NLS-1$
|
||||||
creator.setIndexMap(false);
|
creator.setIndexMap(true);
|
||||||
creator.setIndexAddress(false);
|
creator.setIndexAddress(true);
|
||||||
creator.setIndexPOI(true);
|
creator.setIndexPOI(true);
|
||||||
creator.setIndexTransport(false);
|
creator.setIndexTransport(true);
|
||||||
creator.setIndexRouting(false);
|
creator.setIndexRouting(true);
|
||||||
|
|
||||||
// creator.deleteDatabaseIndexes = false;
|
// creator.deleteDatabaseIndexes = false;
|
||||||
// creator.recreateOnlyBinaryFile = true;
|
// creator.recreateOnlyBinaryFile = true;
|
||||||
|
|
|
@ -92,14 +92,16 @@
|
||||||
<filter layer="-1" tag="" value="" order="10" objectType="2"/>
|
<filter layer="-1" tag="" value="" order="10" objectType="2"/>
|
||||||
<filter tag="" value="" order="11" objectType="2"/>
|
<filter tag="" value="" order="11" objectType="2"/>
|
||||||
|
|
||||||
<group objectType="3" >
|
|
||||||
<filter tag="railway" value="platform" order="30" />
|
<group>
|
||||||
<filter tag="railway" value="station" order="30"/>
|
<filter tag="railway" value="platform"/>
|
||||||
<filter tag="public_transport" value="station" order="30"/>
|
<filter tag="railway" value="station" />
|
||||||
<filter tag="public_transport" value="platform" order="30"/>
|
<filter tag="public_transport" value="station"/>
|
||||||
|
<filter tag="public_transport" value="platform"/>
|
||||||
<groupFilter>
|
<groupFilter>
|
||||||
<filter point="false" cycle="true"/>
|
<filter point="false" cycle="true" objectType="3" order="30"/>
|
||||||
<filter point="false" area="true"/>
|
<filter point="false" area="true" objectType="3" order="30"/>
|
||||||
|
<filter objectType="2" order="58"/>
|
||||||
</groupFilter>
|
</groupFilter>
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
|
@ -111,6 +113,7 @@
|
||||||
<filter layer="1" tag="railway" value="" order="66"/>
|
<filter layer="1" tag="railway" value="" order="66"/>
|
||||||
<filter tag="railway" value="" order="58"/>
|
<filter tag="railway" value="" order="58"/>
|
||||||
<filter tag="public_transport" value="" order="58"/>
|
<filter tag="public_transport" value="" order="58"/>
|
||||||
|
|
||||||
<filter layer="1" tag="waterway" value="" order="66"/>
|
<filter layer="1" tag="waterway" value="" order="66"/>
|
||||||
<filter tag="waterway" value="" order="18"/>
|
<filter tag="waterway" value="" order="18"/>
|
||||||
|
|
||||||
|
@ -1375,8 +1378,13 @@
|
||||||
<filter layer="-1" tag="railway" value="funicular" minzoom="15" color="#666666" strokeWidth="5" pathEffect="5_3" color_2="#cccccc" strokeWidth_2="3"/>
|
<filter layer="-1" tag="railway" value="funicular" minzoom="15" color="#666666" strokeWidth="5" pathEffect="5_3" color_2="#cccccc" strokeWidth_2="3"/>
|
||||||
<filter tag="railway" value="funicular" minzoom="15" color="#666666" strokeWidth="2"/>
|
<filter tag="railway" value="funicular" minzoom="15" color="#666666" strokeWidth="2"/>
|
||||||
|
|
||||||
<filter tag="railway" value="platform" minzoom="15" color="#888888" strokeWidth="3"/>
|
<group>
|
||||||
<filter tag="public_transport" value="platform" minzoom="15" color="#888888" strokeWidth="3"/>
|
<filter tag="railway" value="platform"/>
|
||||||
|
<filter tag="public_transport" value="platform"/>
|
||||||
|
<groupFilter color="#888888" strokeWidth="4" strokeWidth_2="2" color_2="#bababa" minzoom="16">
|
||||||
|
<filter minzoom="18" strokeWidth="6" strokeWidth_2="4" />
|
||||||
|
</groupFilter>
|
||||||
|
</group>
|
||||||
|
|
||||||
<!-- Aeroways -->
|
<!-- Aeroways -->
|
||||||
<filter tag="aeroway" value="runway" color="#bbbbcc">
|
<filter tag="aeroway" value="runway" color="#bbbbcc">
|
||||||
|
|
|
@ -33,6 +33,7 @@ public class NativeSwingRendering extends NativeLibrary {
|
||||||
private static NativeSwingRendering defaultLoadedLibrary;
|
private static NativeSwingRendering defaultLoadedLibrary;
|
||||||
|
|
||||||
public void loadRuleStorage(String path, String renderingProperties) throws SAXException, IOException{
|
public void loadRuleStorage(String path, String renderingProperties) throws SAXException, IOException{
|
||||||
|
RenderingRulesStorage storage2 = new RenderingRulesStorage();
|
||||||
RenderingRulesStorage storage = new RenderingRulesStorage();
|
RenderingRulesStorage storage = new RenderingRulesStorage();
|
||||||
final RenderingRulesStorageResolver resolver = new RenderingRulesStorageResolver() {
|
final RenderingRulesStorageResolver resolver = new RenderingRulesStorageResolver() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -60,7 +61,9 @@ public class NativeSwingRendering extends NativeLibrary {
|
||||||
renderingProps.put(s.substring(0, i).trim(), s.substring(i + 1).trim());
|
renderingProps.put(s.substring(0, i).trim(), s.substring(i + 1).trim());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
initRenderingRulesStorage(storage);
|
||||||
this.storage = storage;
|
this.storage = storage;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public NativeSwingRendering(){
|
public NativeSwingRendering(){
|
||||||
|
@ -118,7 +121,6 @@ public class NativeSwingRendering extends NativeLibrary {
|
||||||
|
|
||||||
if(request.searchRenderingAttribute(RenderingRuleStorageProperties.A_DEFAULT_COLOR)) {
|
if(request.searchRenderingAttribute(RenderingRuleStorageProperties.A_DEFAULT_COLOR)) {
|
||||||
rctx.defaultColor = request.getIntPropertyValue(request.ALL.R_ATTR_COLOR_VALUE);
|
rctx.defaultColor = request.getIntPropertyValue(request.ALL.R_ATTR_COLOR_VALUE);
|
||||||
System.out.println("!"+ Integer.toHexString(rctx.defaultColor));
|
|
||||||
}
|
}
|
||||||
request.clearState();
|
request.clearState();
|
||||||
request.setIntFilter(request.ALL.R_MINZOOM, zoom);
|
request.setIntFilter(request.ALL.R_MINZOOM, zoom);
|
||||||
|
|
|
@ -17,6 +17,7 @@ void loadJniRenderingContext(JNIEnv* env);
|
||||||
void loadJniRenderingRules(JNIEnv* env);
|
void loadJniRenderingRules(JNIEnv* env);
|
||||||
jclass jclassIntArray ;
|
jclass jclassIntArray ;
|
||||||
jclass jclassString;
|
jclass jclassString;
|
||||||
|
jmethodID jmethod_Object_toString = NULL;
|
||||||
|
|
||||||
extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved)
|
extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved)
|
||||||
{
|
{
|
||||||
|
@ -68,13 +69,15 @@ extern "C" JNIEXPORT jboolean JNICALL Java_net_osmand_NativeLibrary_initBinaryMa
|
||||||
|
|
||||||
|
|
||||||
// Global object
|
// Global object
|
||||||
UNORDERED(map)<void*, RenderingRulesStorage*> cachedStorages;
|
UNORDERED(map)<std::string, RenderingRulesStorage*> cachedStorages;
|
||||||
|
|
||||||
RenderingRulesStorage* getStorage(JNIEnv* env, jobject storage) {
|
RenderingRulesStorage* getStorage(JNIEnv* env, jobject storage) {
|
||||||
if (cachedStorages.find(storage) == cachedStorages.end()) {
|
std::string hash = getStringMethod(env, storage, jmethod_Object_toString);
|
||||||
cachedStorages[storage] = createRenderingRulesStorage(env, storage);
|
if (cachedStorages.find(hash) == cachedStorages.end()) {
|
||||||
|
osmand_log_print(LOG_DEBUG, "Init rendering storage %s ", hash.c_str());
|
||||||
|
cachedStorages[hash] = createRenderingRulesStorage(env, storage);
|
||||||
}
|
}
|
||||||
return cachedStorages[storage];
|
return cachedStorages[hash];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -383,6 +386,7 @@ jmethodID jmethod_RouteDataObject_init = NULL;
|
||||||
jclass jclass_NativeRouteSearchResult = NULL;
|
jclass jclass_NativeRouteSearchResult = NULL;
|
||||||
jmethodID jmethod_NativeRouteSearchResult_init = NULL;
|
jmethodID jmethod_NativeRouteSearchResult_init = NULL;
|
||||||
|
|
||||||
|
|
||||||
void loadJniRenderingContext(JNIEnv* env)
|
void loadJniRenderingContext(JNIEnv* env)
|
||||||
{
|
{
|
||||||
jclass_RenderingContext = findClass(env, "net/osmand/RenderingContext");
|
jclass_RenderingContext = findClass(env, "net/osmand/RenderingContext");
|
||||||
|
@ -407,6 +411,9 @@ void loadJniRenderingContext(JNIEnv* env)
|
||||||
jmethod_RenderingContext_getIconRawData = env->GetMethodID(jclass_RenderingContext,
|
jmethod_RenderingContext_getIconRawData = env->GetMethodID(jclass_RenderingContext,
|
||||||
"getIconRawData", "(Ljava/lang/String;)[B");
|
"getIconRawData", "(Ljava/lang/String;)[B");
|
||||||
|
|
||||||
|
jmethod_Object_toString = env->GetMethodID(findClass(env, "java/lang/Object", true),
|
||||||
|
"toString", "()Ljava/lang/String;");
|
||||||
|
|
||||||
|
|
||||||
jclass_JUnidecode = findClass(env, "net/sf/junidecode/Junidecode");
|
jclass_JUnidecode = findClass(env, "net/sf/junidecode/Junidecode");
|
||||||
jmethod_JUnidecode_unidecode = env->GetStaticMethodID(jclass_JUnidecode, "unidecode", "(Ljava/lang/String;)Ljava/lang/String;");
|
jmethod_JUnidecode_unidecode = env->GetStaticMethodID(jclass_JUnidecode, "unidecode", "(Ljava/lang/String;)Ljava/lang/String;");
|
||||||
|
|
Loading…
Reference in a new issue