Fix issue 469, additional multipolygon check (fix on client side)
This commit is contained in:
parent
9a2e4001e5
commit
003e5e9ecc
6 changed files with 357 additions and 5 deletions
|
@ -984,6 +984,11 @@ public class BinaryMapIndexReader {
|
||||||
result = prime * result + ((value == null) ? 0 : value.hashCode());
|
result = prime * result + ((value == null) ? 0 : value.hashCode());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "TagValuePair : " + tag + " - " + value;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object obj) {
|
public boolean equals(Object obj) {
|
||||||
|
|
|
@ -184,7 +184,7 @@ public class MapAlgorithms {
|
||||||
return longitude;
|
return longitude;
|
||||||
}
|
}
|
||||||
// that tested on all cases (left/right)
|
// that tested on all cases (left/right)
|
||||||
double lon = b.getLongitude()+
|
double lon = b.getLongitude() -
|
||||||
(b.getLatitude() - latitude) * (b.getLongitude() - a.getLongitude()) / (b.getLatitude() - a.getLatitude());
|
(b.getLatitude() - latitude) * (b.getLongitude() - a.getLongitude()) / (b.getLatitude() - a.getLatitude());
|
||||||
if (lon <= longitude) {
|
if (lon <= longitude) {
|
||||||
return lon;
|
return lon;
|
||||||
|
@ -228,6 +228,6 @@ public class MapAlgorithms {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,9 @@ public class IndexPoiCreator extends AbstractIndexPartCreator {
|
||||||
// load data for way (location etc...)
|
// load data for way (location etc...)
|
||||||
ctx.loadEntityData(e, false);
|
ctx.loadEntityData(e, false);
|
||||||
for (Amenity a : tempAmenityList) {
|
for (Amenity a : tempAmenityList) {
|
||||||
checkEntity(e);
|
// do not add that check because it is too much printing for batch creation
|
||||||
|
// by statistic < 1% creates maps manually
|
||||||
|
// checkEntity(e);
|
||||||
a.setEntity(e);
|
a.setEntity(e);
|
||||||
if (a.getLocation() != null) {
|
if (a.getLocation() != null) {
|
||||||
// do not convert english name
|
// do not convert english name
|
||||||
|
|
254
OsmAnd/hs_err_pid22046.log
Normal file
254
OsmAnd/hs_err_pid22046.log
Normal file
|
@ -0,0 +1,254 @@
|
||||||
|
#
|
||||||
|
# A fatal error has been detected by the Java Runtime Environment:
|
||||||
|
#
|
||||||
|
# Internal Error (classFileParser.cpp:3494), pid=22046, tid=3077839728
|
||||||
|
# Error: ShouldNotReachHere()
|
||||||
|
#
|
||||||
|
# JRE version: 6.0_22-b22
|
||||||
|
# Java VM: OpenJDK Server VM (20.0-b11 mixed mode linux-x86 )
|
||||||
|
# Derivative: IcedTea6 1.10.2
|
||||||
|
# Distribution: Ubuntu 11.04, package 6b22-1.10.2-0ubuntu1~11.04.1
|
||||||
|
# If you would like to submit a bug report, please include
|
||||||
|
# instructions how to reproduce the bug and visit:
|
||||||
|
# https://bugs.launchpad.net/ubuntu/+source/openjdk-6/
|
||||||
|
#
|
||||||
|
|
||||||
|
--------------- T H R E A D ---------------
|
||||||
|
|
||||||
|
Current thread (0x08c3b400): JavaThread "Unknown thread" [_thread_in_vm, id=22051, stack(0xb76f1000,0xb7742000)]
|
||||||
|
|
||||||
|
Stack: [0xb76f1000,0xb7742000], sp=0xb7740840, free space=318k
|
||||||
|
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
|
||||||
|
V [libjvm.so+0x65618f] VMError::report(outputStream*)+0x145f
|
||||||
|
V [libjvm.so+0x656472] VMError::report_and_die()+0x192
|
||||||
|
V [libjvm.so+0x29b3fe] report_vm_error(char const*, int, char const*, char const*)+0x3e
|
||||||
|
V [libjvm.so+0x29b529] report_should_not_reach_here(char const*, int)+0x29
|
||||||
|
V [libjvm.so+0x235508] ClassFileParser::parseClassFile(symbolHandle, Handle, Handle, KlassHandle, GrowableArray<Handle>*, symbolHandle&, bool, Thread*)+0x2278
|
||||||
|
V [libjvm.so+0x23941b] ClassLoader::load_classfile(symbolHandle, Thread*)+0x20b
|
||||||
|
V [libjvm.so+0x5eac0d] SystemDictionary::load_instance_class(symbolHandle, Handle, Thread*)+0x48d
|
||||||
|
V [libjvm.so+0x5e941d] SystemDictionary::resolve_instance_class_or_null(symbolHandle, Handle, Handle, Thread*)+0x70d
|
||||||
|
V [libjvm.so+0x5e9c44] SystemDictionary::resolve_or_null(symbolHandle, Handle, Handle, Thread*)+0x44
|
||||||
|
V [libjvm.so+0x5eb210] SystemDictionary::resolve_or_fail(symbolHandle, Handle, Handle, bool, Thread*)+0x30
|
||||||
|
V [libjvm.so+0x5eb2da] SystemDictionary::resolve_or_fail(symbolHandle, bool, Thread*)+0x2a
|
||||||
|
V [libjvm.so+0x5eb36d] SystemDictionary::initialize_wk_klass(SystemDictionary::WKID, int, Thread*)+0x8d
|
||||||
|
V [libjvm.so+0x5eb3c5] SystemDictionary::initialize_wk_klasses_until(SystemDictionary::WKID, SystemDictionary::WKID&, Thread*)+0x55
|
||||||
|
V [libjvm.so+0x5eed05] SystemDictionary::initialize_wk_klasses_through(SystemDictionary::WKID, SystemDictionary::WKID&, Thread*)+0x25
|
||||||
|
V [libjvm.so+0x5eb493] SystemDictionary::initialize_preloaded_classes(Thread*)+0x73
|
||||||
|
V [libjvm.so+0x5eb7b1] SystemDictionary::initialize(Thread*)+0x131
|
||||||
|
V [libjvm.so+0x62dea7] Universe::genesis(Thread*)+0x117
|
||||||
|
V [libjvm.so+0x62e7cc] universe2_init()+0x2c
|
||||||
|
V [libjvm.so+0x358368] init_globals()+0x98
|
||||||
|
V [libjvm.so+0x6188ac] Threads::create_vm(JavaVMInitArgs*, bool*)+0x1bc
|
||||||
|
V [libjvm.so+0x3a6d0c] JNI_CreateJavaVM+0x5c
|
||||||
|
C [java+0x1788] JavaMain+0x88
|
||||||
|
C [libpthread.so.0+0x5e99] start_thread+0xd9
|
||||||
|
|
||||||
|
|
||||||
|
--------------- P R O C E S S ---------------
|
||||||
|
|
||||||
|
Java Threads: ( => current thread )
|
||||||
|
|
||||||
|
Other Threads:
|
||||||
|
|
||||||
|
=>0x08c3b400 (exited) JavaThread "Unknown thread" [_thread_in_vm, id=22051, stack(0xb76f1000,0xb7742000)]
|
||||||
|
|
||||||
|
VM state:not at safepoint (not fully initialized)
|
||||||
|
|
||||||
|
VM Mutex/Monitor currently owned by a thread: None
|
||||||
|
|
||||||
|
Dynamic libraries:
|
||||||
|
00110000-001ef000 r-xp 00000000 08:01 1049261 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.14
|
||||||
|
001ef000-001f3000 r--p 000de000 08:01 1049261 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.14
|
||||||
|
001f3000-001f4000 rw-p 000e2000 08:01 1049261 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.14
|
||||||
|
001f4000-001fb000 rw-p 00000000 00:00 0
|
||||||
|
001fb000-00206000 r-xp 00000000 08:01 1054008 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libverify.so
|
||||||
|
00206000-00207000 ---p 0000b000 08:01 1054008 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libverify.so
|
||||||
|
00207000-00208000 r--p 0000b000 08:01 1054008 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libverify.so
|
||||||
|
00208000-00209000 rw-p 0000c000 08:01 1054008 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libverify.so
|
||||||
|
0020a000-00224000 r-xp 00000000 08:01 4592076 /lib/i386-linux-gnu/libgcc_s.so.1
|
||||||
|
00224000-00225000 r--p 00019000 08:01 4592076 /lib/i386-linux-gnu/libgcc_s.so.1
|
||||||
|
00225000-00226000 rw-p 0001a000 08:01 4592076 /lib/i386-linux-gnu/libgcc_s.so.1
|
||||||
|
00226000-00249000 r-xp 00000000 08:01 1051747 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libjava.so
|
||||||
|
00249000-0024a000 r--p 00022000 08:01 1051747 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libjava.so
|
||||||
|
0024a000-0024c000 rw-p 00023000 08:01 1051747 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libjava.so
|
||||||
|
0024c000-0025f000 r-xp 00000000 08:01 4592023 /lib/i386-linux-gnu/libnsl-2.13.so
|
||||||
|
0025f000-00260000 r--p 00012000 08:01 4592023 /lib/i386-linux-gnu/libnsl-2.13.so
|
||||||
|
00260000-00261000 rw-p 00013000 08:01 4592023 /lib/i386-linux-gnu/libnsl-2.13.so
|
||||||
|
00261000-00263000 rw-p 00000000 00:00 0
|
||||||
|
00263000-00269000 r-xp 00000000 08:01 4592027 /lib/i386-linux-gnu/libnss_compat-2.13.so
|
||||||
|
00269000-0026a000 r--p 00005000 08:01 4592027 /lib/i386-linux-gnu/libnss_compat-2.13.so
|
||||||
|
0026a000-0026b000 rw-p 00006000 08:01 4592027 /lib/i386-linux-gnu/libnss_compat-2.13.so
|
||||||
|
0026b000-00274000 r-xp 00000000 08:01 4592026 /lib/i386-linux-gnu/libnss_nis-2.13.so
|
||||||
|
00274000-00275000 r--p 00008000 08:01 4592026 /lib/i386-linux-gnu/libnss_nis-2.13.so
|
||||||
|
00275000-00276000 rw-p 00009000 08:01 4592026 /lib/i386-linux-gnu/libnss_nis-2.13.so
|
||||||
|
0027c000-0027d000 r-xp 00000000 00:00 0 [vdso]
|
||||||
|
0027d000-00287000 r-xp 00000000 08:01 4592039 /lib/i386-linux-gnu/libnss_files-2.13.so
|
||||||
|
00287000-00288000 r--p 00009000 08:01 4592039 /lib/i386-linux-gnu/libnss_files-2.13.so
|
||||||
|
00288000-00289000 rw-p 0000a000 08:01 4592039 /lib/i386-linux-gnu/libnss_files-2.13.so
|
||||||
|
00377000-0037a000 r-xp 00000000 08:01 1053990 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/jli/libjli.so
|
||||||
|
0037a000-0037b000 r--p 00002000 08:01 1053990 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/jli/libjli.so
|
||||||
|
0037b000-0037c000 rw-p 00003000 08:01 1053990 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/jli/libjli.so
|
||||||
|
00498000-004bc000 r-xp 00000000 08:01 4592036 /lib/i386-linux-gnu/libm-2.13.so
|
||||||
|
004bc000-004bd000 r--p 00023000 08:01 4592036 /lib/i386-linux-gnu/libm-2.13.so
|
||||||
|
004bd000-004be000 rw-p 00024000 08:01 4592036 /lib/i386-linux-gnu/libm-2.13.so
|
||||||
|
004f9000-00653000 r-xp 00000000 08:01 4591532 /lib/i386-linux-gnu/libc-2.13.so
|
||||||
|
00653000-00654000 ---p 0015a000 08:01 4591532 /lib/i386-linux-gnu/libc-2.13.so
|
||||||
|
00654000-00656000 r--p 0015a000 08:01 4591532 /lib/i386-linux-gnu/libc-2.13.so
|
||||||
|
00656000-00657000 rw-p 0015c000 08:01 4591532 /lib/i386-linux-gnu/libc-2.13.so
|
||||||
|
00657000-0065a000 rw-p 00000000 00:00 0
|
||||||
|
00679000-00680000 r-xp 00000000 08:01 4591603 /lib/i386-linux-gnu/librt-2.13.so
|
||||||
|
00680000-00681000 r--p 00006000 08:01 4591603 /lib/i386-linux-gnu/librt-2.13.so
|
||||||
|
00681000-00682000 rw-p 00007000 08:01 4591603 /lib/i386-linux-gnu/librt-2.13.so
|
||||||
|
00740000-00746000 r-xp 00000000 08:01 1053987 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libzip.so
|
||||||
|
00746000-00747000 r--p 00005000 08:01 1053987 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libzip.so
|
||||||
|
00747000-00748000 rw-p 00006000 08:01 1053987 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libzip.so
|
||||||
|
00785000-00787000 r-xp 00000000 08:01 4592034 /lib/i386-linux-gnu/libdl-2.13.so
|
||||||
|
00787000-00788000 r--p 00001000 08:01 4592034 /lib/i386-linux-gnu/libdl-2.13.so
|
||||||
|
00788000-00789000 rw-p 00002000 08:01 4592034 /lib/i386-linux-gnu/libdl-2.13.so
|
||||||
|
00854000-00869000 r-xp 00000000 08:01 4592032 /lib/i386-linux-gnu/libpthread-2.13.so
|
||||||
|
00869000-0086a000 r--p 00015000 08:01 4592032 /lib/i386-linux-gnu/libpthread-2.13.so
|
||||||
|
0086a000-0086b000 rw-p 00016000 08:01 4592032 /lib/i386-linux-gnu/libpthread-2.13.so
|
||||||
|
0086b000-0086d000 rw-p 00000000 00:00 0
|
||||||
|
009c9000-009dc000 r-xp 00000000 08:01 4592072 /lib/i386-linux-gnu/libz.so.1.2.3.4
|
||||||
|
009dc000-009dd000 r--p 00012000 08:01 4592072 /lib/i386-linux-gnu/libz.so.1.2.3.4
|
||||||
|
009dd000-009de000 rw-p 00013000 08:01 4592072 /lib/i386-linux-gnu/libz.so.1.2.3.4
|
||||||
|
00bd6000-00bf2000 r-xp 00000000 08:01 4592037 /lib/i386-linux-gnu/ld-2.13.so
|
||||||
|
00bf2000-00bf3000 r--p 0001b000 08:01 4592037 /lib/i386-linux-gnu/ld-2.13.so
|
||||||
|
00bf3000-00bf4000 rw-p 0001c000 08:01 4592037 /lib/i386-linux-gnu/ld-2.13.so
|
||||||
|
00bf4000-012ba000 r-xp 00000000 08:01 1053998 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/server/libjvm.so
|
||||||
|
012ba000-012bb000 ---p 006c6000 08:01 1053998 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/server/libjvm.so
|
||||||
|
012bb000-01300000 r--p 006c6000 08:01 1053998 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/server/libjvm.so
|
||||||
|
01300000-0130f000 rw-p 0070b000 08:01 1053998 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/server/libjvm.so
|
||||||
|
0130f000-01729000 rw-p 00000000 00:00 0
|
||||||
|
08048000-08051000 r-xp 00000000 08:01 1180687 /usr/lib/jvm/java-6-openjdk/jre/bin/java
|
||||||
|
08051000-08052000 r--p 00008000 08:01 1180687 /usr/lib/jvm/java-6-openjdk/jre/bin/java
|
||||||
|
08052000-08053000 rw-p 00009000 08:01 1180687 /usr/lib/jvm/java-6-openjdk/jre/bin/java
|
||||||
|
08c34000-08ca9000 rw-p 00000000 00:00 0 [heap]
|
||||||
|
7eeec000-7ef51000 r--s 004cb000 08:01 5505534 /home/victor/projects/android-sdk-linux_86/platforms/android-8/android.jar
|
||||||
|
7ef51000-7ef52000 ---p 00000000 00:00 0
|
||||||
|
7ef52000-7efd2000 rw-p 00000000 00:00 0
|
||||||
|
7efd2000-7efd3000 ---p 00000000 00:00 0
|
||||||
|
7efd3000-7f053000 rw-p 00000000 00:00 0
|
||||||
|
7f053000-7f054000 ---p 00000000 00:00 0
|
||||||
|
7f054000-7f0d4000 rw-p 00000000 00:00 0
|
||||||
|
7f0d4000-7f0d5000 ---p 00000000 00:00 0
|
||||||
|
7f0d5000-7f15d000 rw-p 00000000 00:00 0
|
||||||
|
7f15d000-7f195000 rw-p 00000000 00:00 0
|
||||||
|
7f195000-7f1a5000 rw-p 00000000 00:00 0
|
||||||
|
7f1a5000-7f286000 rw-p 00000000 00:00 0
|
||||||
|
7f286000-7f28e000 rw-p 00000000 00:00 0
|
||||||
|
7f28e000-7f2c6000 rw-p 00000000 00:00 0
|
||||||
|
7f2c6000-7f2d6000 rw-p 00000000 00:00 0
|
||||||
|
7f2d6000-7f3b6000 rw-p 00000000 00:00 0
|
||||||
|
7f3b6000-7f3bf000 rw-p 00000000 00:00 0
|
||||||
|
7f3bf000-7f42f000 rw-p 00000000 00:00 0
|
||||||
|
7f42f000-80430000 rw-p 00000000 00:00 0
|
||||||
|
80430000-87430000 rw-p 00000000 00:00 0
|
||||||
|
87430000-89250000 rw-p 00000000 00:00 0
|
||||||
|
89250000-a5590000 rw-p 00000000 00:00 0
|
||||||
|
a5590000-a6490000 rw-p 00000000 00:00 0
|
||||||
|
a6490000-b4630000 rw-p 00000000 00:00 0
|
||||||
|
b4631000-b463a000 rw-p 00000000 00:00 0
|
||||||
|
b463a000-b46f1000 rw-p 00000000 00:00 0
|
||||||
|
b46f1000-b4931000 rwxp 00000000 00:00 0
|
||||||
|
b4931000-b76f1000 rw-p 00000000 00:00 0
|
||||||
|
b76f1000-b76f4000 ---p 00000000 00:00 0
|
||||||
|
b76f4000-b7745000 rw-p 00000000 00:00 0
|
||||||
|
b7753000-b775b000 rw-s 00000000 08:01 4590758 /tmp/hsperfdata_victor/22046
|
||||||
|
b775b000-b775c000 rw-p 00000000 00:00 0
|
||||||
|
b775c000-b775d000 r--p 00000000 00:00 0
|
||||||
|
b775d000-b775f000 rw-p 00000000 00:00 0
|
||||||
|
bf9d7000-bf9f8000 rw-p 00000000 00:00 0 [stack]
|
||||||
|
|
||||||
|
VM Arguments:
|
||||||
|
jvm_args: -Dfile.encoding=UTF-8 -Xbootclasspath:/home/victor/projects/android-sdk-linux_86/platforms/android-8/android.jar
|
||||||
|
java_command: net.osmand.data.MapAlgorithms
|
||||||
|
Launcher Type: SUN_STANDARD
|
||||||
|
|
||||||
|
Environment Variables:
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
|
||||||
|
USERNAME=victor
|
||||||
|
LD_LIBRARY_PATH=/usr/lib/jvm/java-6-openjdk/jre/lib/i386/server:/usr/lib/jvm/java-6-openjdk/jre/lib/i386:/usr/lib/jvm/java-6-openjdk/jre/../lib/i386:/usr/lib/jvm/java-6-openjdk/jre/lib/i386/client:/usr/lib/jvm/java-6-openjdk/jre/lib/i386:/usr/lib/xulrunner-1.9.2.17:/usr/lib/xulrunner-1.9.2.17
|
||||||
|
SHELL=/bin/bash
|
||||||
|
DISPLAY=:0
|
||||||
|
|
||||||
|
Signal Handlers:
|
||||||
|
SIGSEGV: [libjvm.so+0x656ef0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
|
||||||
|
SIGBUS: [libjvm.so+0x656ef0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
|
||||||
|
SIGFPE: [libjvm.so+0x51d410], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
|
||||||
|
SIGPIPE: [libjvm.so+0x51d410], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
|
||||||
|
SIGXFSZ: [libjvm.so+0x51d410], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
|
||||||
|
SIGILL: [libjvm.so+0x51d410], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
|
||||||
|
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
|
||||||
|
SIGUSR2: [libjvm.so+0x51d280], sa_mask[0]=0x00000004, sa_flags=0x10000004
|
||||||
|
SIGHUP: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
|
||||||
|
SIGINT: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
|
||||||
|
SIGTERM: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
|
||||||
|
SIGQUIT: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
|
||||||
|
|
||||||
|
|
||||||
|
--------------- S Y S T E M ---------------
|
||||||
|
|
||||||
|
OS:Ubuntu 11.04 (natty)
|
||||||
|
uname:Linux 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686
|
||||||
|
libc:glibc 2.13 NPTL 2.13
|
||||||
|
rlimit: STACK 8192k, CORE 0k, NPROC infinity, NOFILE 4096, AS infinity
|
||||||
|
load average:1.35 1.13 1.07
|
||||||
|
|
||||||
|
/proc/meminfo:
|
||||||
|
MemTotal: 2954168 kB
|
||||||
|
MemFree: 85856 kB
|
||||||
|
Buffers: 28824 kB
|
||||||
|
Cached: 736420 kB
|
||||||
|
SwapCached: 3540 kB
|
||||||
|
Active: 1814884 kB
|
||||||
|
Inactive: 943644 kB
|
||||||
|
Active(anon): 1551576 kB
|
||||||
|
Inactive(anon): 709456 kB
|
||||||
|
Active(file): 263308 kB
|
||||||
|
Inactive(file): 234188 kB
|
||||||
|
Unevictable: 112 kB
|
||||||
|
Mlocked: 112 kB
|
||||||
|
HighTotal: 2093212 kB
|
||||||
|
HighFree: 2612 kB
|
||||||
|
LowTotal: 860956 kB
|
||||||
|
LowFree: 83244 kB
|
||||||
|
SwapTotal: 8656892 kB
|
||||||
|
SwapFree: 8602364 kB
|
||||||
|
Dirty: 6956 kB
|
||||||
|
Writeback: 0 kB
|
||||||
|
AnonPages: 1990068 kB
|
||||||
|
Mapped: 130596 kB
|
||||||
|
Shmem: 267672 kB
|
||||||
|
Slab: 54620 kB
|
||||||
|
SReclaimable: 32068 kB
|
||||||
|
SUnreclaim: 22552 kB
|
||||||
|
KernelStack: 3728 kB
|
||||||
|
PageTables: 11316 kB
|
||||||
|
NFS_Unstable: 0 kB
|
||||||
|
Bounce: 0 kB
|
||||||
|
WritebackTmp: 0 kB
|
||||||
|
CommitLimit: 10133976 kB
|
||||||
|
Committed_AS: 4343804 kB
|
||||||
|
VmallocTotal: 122880 kB
|
||||||
|
VmallocUsed: 37532 kB
|
||||||
|
VmallocChunk: 35284 kB
|
||||||
|
HardwareCorrupted: 0 kB
|
||||||
|
HugePages_Total: 0
|
||||||
|
HugePages_Free: 0
|
||||||
|
HugePages_Rsvd: 0
|
||||||
|
HugePages_Surp: 0
|
||||||
|
Hugepagesize: 4096 kB
|
||||||
|
DirectMap4k: 36856 kB
|
||||||
|
DirectMap4M: 872448 kB
|
||||||
|
|
||||||
|
|
||||||
|
CPU:total 4 (2 cores per cpu, 2 threads per core) family 6 model 37 stepping 5, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, ht
|
||||||
|
|
||||||
|
Memory: 4k page, physical 2954168k(85856k free), swap 8656892k(8602364k free)
|
||||||
|
|
||||||
|
vm_info: OpenJDK Server VM (20.0-b11) for linux-x86 JRE (1.6.0_22-b22), built on Jun 11 2011 05:56:20 by "buildd" with gcc 4.5.2
|
||||||
|
|
||||||
|
time: Fri Jun 24 16:09:38 2011
|
||||||
|
elapsed time: 0 seconds
|
||||||
|
|
|
@ -601,7 +601,98 @@ public class MapRenderRepositories {
|
||||||
return pl;
|
return pl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Copied from MapAlgorithms
|
||||||
private boolean isClockwiseWay(TLongList c){
|
private boolean isClockwiseWay(TLongList c){
|
||||||
|
if(c.size() == 0){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// calculate middle Y
|
||||||
|
int mask = 0xffffffff;
|
||||||
|
long middleY = 0;
|
||||||
|
for(int i=0; i< c.size(); i++) {
|
||||||
|
middleY += (c.get(i) & mask);
|
||||||
|
}
|
||||||
|
middleY /= (long) c.size();
|
||||||
|
|
||||||
|
double clockwiseSum = 0;
|
||||||
|
|
||||||
|
boolean firstDirectionUp = false;
|
||||||
|
int previousX = Integer.MIN_VALUE;
|
||||||
|
int firstX = Integer.MIN_VALUE;
|
||||||
|
|
||||||
|
int prevX = (int) (c.get(0) >> 32);
|
||||||
|
int prevY = (int) (c.get(0) & mask);
|
||||||
|
|
||||||
|
for (int i = 1; i < c.size(); i++) {
|
||||||
|
int x = (int) (c.get(i) >> 32);
|
||||||
|
int y = (int) (c.get(i) & mask);
|
||||||
|
int rX = ray_intersect_x(prevX, prevY, x, y, (int) middleY);
|
||||||
|
if (rX != Integer.MIN_VALUE) {
|
||||||
|
boolean skipSameSide = (y <= middleY) == (prevY <= middleY);
|
||||||
|
if (skipSameSide) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
boolean directionUp = prevY >= middleY;
|
||||||
|
if (firstX == -Integer.MIN_VALUE) {
|
||||||
|
firstDirectionUp = directionUp;
|
||||||
|
firstX = rX;
|
||||||
|
} else {
|
||||||
|
boolean clockwise = (!directionUp) == (previousX < rX);
|
||||||
|
if (clockwise) {
|
||||||
|
clockwiseSum += Math.abs(previousX - rX);
|
||||||
|
} else {
|
||||||
|
clockwiseSum -= Math.abs(previousX - rX);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
previousX = rX;
|
||||||
|
prevX = x;
|
||||||
|
prevY = y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(firstX != -360){
|
||||||
|
boolean clockwise = (!firstDirectionUp) == (previousX < firstX);
|
||||||
|
if(clockwise){
|
||||||
|
clockwiseSum += Math.abs(previousX - firstX);
|
||||||
|
} else {
|
||||||
|
clockwiseSum -= Math.abs(previousX - firstX);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return clockwiseSum >= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copied from MapAlgorithms
|
||||||
|
private int ray_intersect_x(int prevX, int prevY, int x, int y, int middleY) {
|
||||||
|
// prev node above line
|
||||||
|
// x,y node below line
|
||||||
|
if(prevY > y){
|
||||||
|
int tx = prevX;
|
||||||
|
int ty = prevY;
|
||||||
|
x = prevX;
|
||||||
|
y = prevY;
|
||||||
|
prevX = tx;
|
||||||
|
prevY = ty;
|
||||||
|
}
|
||||||
|
if (y == middleY || prevY == middleY) {
|
||||||
|
middleY -= 1;
|
||||||
|
}
|
||||||
|
if (prevY > middleY || y < middleY) {
|
||||||
|
return Integer.MIN_VALUE;
|
||||||
|
} else {
|
||||||
|
if (y == prevY) {
|
||||||
|
// the node on the boundary !!!
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
// that tested on all cases (left/right)
|
||||||
|
double rx = x + ((double) middleY - y) * ((double) x - prevX) / (((double) y - prevY));
|
||||||
|
return (int) rx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NOT WORKING GOOD !
|
||||||
|
private boolean isClockwiseWayOld(TLongList c){
|
||||||
double angle = 0;
|
double angle = 0;
|
||||||
double prevAng = 0;
|
double prevAng = 0;
|
||||||
int px = 0;
|
int px = 0;
|
||||||
|
|
|
@ -685,8 +685,8 @@ public class OsmandRenderer {
|
||||||
rc.main.updatePaint(paint);
|
rc.main.updatePaint(paint);
|
||||||
canvas.drawPath(path, paint);
|
canvas.drawPath(path, paint);
|
||||||
// for test purpose
|
// for test purpose
|
||||||
// rc.second.strokeWidth = 1.5f;
|
// rc.second.strokeWidth = 1.5f;
|
||||||
// rc.second.color = Color.BLACK;
|
// rc.second.color = Color.BLACK;
|
||||||
|
|
||||||
if (rc.second.strokeWidth != 0) {
|
if (rc.second.strokeWidth != 0) {
|
||||||
rc.second.updatePaint(paint);
|
rc.second.updatePaint(paint);
|
||||||
|
|
Loading…
Reference in a new issue