logo separator

[mkgmap-dev] Problem with global index POI search

From Gerd Petermann gpetermann_muenchen at hotmail.com on Mon Nov 15 10:04:17 GMT 2021

Hi Ticker,

a) probably clear with uppercase3.patch
b) won't work, I think the entries in Mdr15 can contain more or less anything
c) probably vice versa, Mdr15 should contain what is displayed to the user on the PC, other index entries always seem to be uppercase. 
d) Yes, that's a strange problem and one reason why Enrico contacted me. Some mixed-case strings are not displayed exactly as wanted.
e) I found no readable Garmin map with lower case strings for POI or road names, but different maps have different prefix lenghts between 1 and 9 in Mdr12. Steve might know more.
f) yes, should be optimised
g) I think MdrCheck should reflect our knowledge about index structures, but sometimes the logic in mkgmap and in MdrCheck doesn't match 100%. 
h) Yes, hard to say.
i) Yes, I think Garmin maps use uppercase strings for most of the index. Maybe Mdr15 contains mixed case. In a map for Benelux I see e.g. "'t Bèrs Kuiltje" in the list of POI. Unfortunately the Mdr15 section is written with a different format, MdrDisplay calls it compressedStrings. 

Gerd

________________________________________
Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap at jagit.co.uk>
Gesendet: Sonntag, 14. November 2021 17:34
An: Development list for mkgmap
Betreff: Re: [mkgmap-dev] Problem with global index POI search

Hi Gerd

I'd just finished writing the following when I see your next post about
Mdr12. I'll post it anyway.

Some thoughts:

a) I'm surprised that uppercase.patch makes a difference; it's not much
different from changing the collator strength. Unless: Is there another
POI "Scuola Dell Infanzia Fondazione Pietro Caprettini" with different
capitalisation? This patch will increase memory usage.

b) uppercase2.patch is a bit drastic; it might be better to start with
just:
        int strOff = createString(name.toUpperCase(Locale.ENGLISH));
This leaves the forDevice behaviour unchanged. Then this, where there
isn't the possibility of having an alternative cased name for the
index, can be examined on various devices.

c) Maybe all of Mdr15 (Country/Region/City/Street/Zip/POI) should be
uppercase.

d) When I was experimenting with --lower-case and differently cased
cities, I found MapSource &| BaseCamp changed the case of strange cased
names in the selection lists, but it didn't then not find them!
eg wherWell was shown as wherwell, Wherwell remained as Wherwell

e) Is there a Garmin map that can be examined where there are lower
case LBL entries; what is the case of the Mdr15 entries

f) Why does MDRFile bother with mdr15.createString() when forDevice?
This is just an space/efficiency issue.

g) MdrCheck will complain a lot about any case changes. It should
probably have an option to allow SECONDARY/TERTIARY/EXACT matching.

h) I haven't thought about the effect Mdr17 has on any this.

i) Understanding these issues will help towards deciding what to do
with --lower-case, indexing and case-variants. It could be that
uppercasing everything in MDR is better than working on the collator
strength, but the difference between EXACT and TERTIARY still needs to
be considered.

I realise this is more questions than answers, but we might getting
into dubious Garmin behaviour.

Ticker


More information about the mkgmap-dev mailing list