jbrwn / NET-Mapnik

.NET bindings for mapnik
34 stars 12 forks source link

ICU Problem with [ref].replace #35

Closed longlostbro closed 8 years ago

longlostbro commented 8 years ago

Could not initialize ICU resources for expression: "[ref].replace('·', '\n') Is there a fix for this? A previous solution for the native can be found here https://groups.google.com/forum/#!msg/mapnik/8n8OKgVaQrM/pwgY4acTE8UJ But I'm not sure if this applies to this library

Error can be reproduced by adding something like

jbrwn commented 8 years ago

Can you check whether the icu.dat file exists in your bin\share\icu directory?

longlostbro commented 8 years ago

it does not exist, only a file named "." Which is also the same in my NuGet Packages folder "packages\mapnik.2.1.1\native\share\icu__." and the filesize of .__ is 0 bytes in both locations

jbrwn commented 8 years ago

Hmm. That is unfortunate.

Can you please try this workaround:

longlostbro commented 8 years ago

the folder mapnik-win-sdk-14.0-x86-v3.0.0-rc1-1158-g73dbec3\mapnik-sdk\share\icu is empty when I download it. but the x64 sdk contains the .dat file, I copied it and it works. Why did the nuget package not contain the dat file?

jbrwn commented 8 years ago

Why did the nuget package not contain the dat file?

When the package is created the entire share directory from the mapnik sdk is supposed to get copied into the package. If the dat file is missing from the x86 mapnik sdk then it will be missing from the x86 nuget package as well.

I'll leave this ticket open so the issue gets fixed in the next release. For now it sounds like you have a workaround.

longlostbro commented 8 years ago

Thank You

longlostbro commented 8 years ago

Could you possible add something to allow for a custom location for the icu.dat? I've tried programatically changing the environmental variable ICU_DATA but it doesn't seem to make any difference.

jbrwn commented 8 years ago

I don't have time to tackle this right now but i would consider adding this feature if you want to submit a PR. Here is the code that sets the ICU_DATA environmental variable. It is called when the net-mapnik assembly is loaded for the first time.

longlostbro commented 8 years ago

I understand. If I find the time I will make an attempt. Thank you.