Java Mapscript - querybyattribut SOLVED

Benedikt Rothe umn-ms at HYDROTEC.DE
Tue Apr 18 14:40:52 PDT 2006


Umberto, Nicol, Norbert, Oliver

Umberto wrote
> try to run the attached Java source. 
...
> "Südliche Weinstraße" as the second it will work!

In my copy of your mail the queryByAttribute.java-program is not 
attached.  Could somebody post program including testdata (or 
download-url) ?

I 'd like to study a running example, because I don't understand 
how umlaut-conversion from Java to Mapserver-kernel can run 
properly anyway and I'd like to understand it :-)
-----------
It seems Norbert found a kind of answer to his question 
> is there a way to do the converion in java dircetly?
He suggested
> Try to convert the String before you set the expression in your code(-> 
String( byte 
> bytes[], String ) 
Could you be more precisly? I do not understand what must be converted to 
what.
How must this be applied to convert a Java-String to a proper 
"Mapserver-String" (?)
-----------
Is somebody willing to try to add an "UTF-8 -> ISO-8859-Conversion" in
mapscript_wrap.c for testpurposes? (Even in the case it works, this would 
not be a real solution because it bypasses swig.)

Benedikt


UMN MapServer Users List <MAPSERVER-USERS at LISTS.UMN.EDU> schrieb am 
14.04.2006 15:23:51:

> Olivier,
> I GOT IT!
> 
> try to run the attached Java source. If you pass it two arguments the
> first being the path to the map file and the second the string to
> search for and you pass
> "Südliche Weinstraße" as the second it will work!
> 
> So why does it fail when "Südliche Weinstraße" is inside the Java
> code? That is a problem that only happens when javac compiles the
> source: javac translates all characters to unicode and in doing that
> it gets the german characters wrong.
> To solve this give javac the following option: -source 1.4
> 
> For more see this link:
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5046139
> 
> On 4/13/06, Umberto Nicoletti <umberto.nicoletti at gmail.com> wrote:
> > This is probably not related only to java mapscript, so please read 
on.
> >
> 
> So I was wrong...but I'll leave the proof to the reader ;-)
> 
> Best regards,
> Umberto
> 
> > On 3/30/06, Oliver Wesp <wesp at gdv.com> wrote:
> > > Dear List,
> > >
> > > I' struggling with queryByAttributes on an attribute field with 
german
> > > umlauts using java mapscript.
> > > The odd thing is that the same thing works fine with php mapscript 
and
> > > when I use expressions in my  mapfile. I'm using a shapefile as 
> datasource.
> > >
> >
> > Could someone of the other mapserver developers shed some light on
> this issue?
> >
> > I have a clue to give: php mapscript is using a different regex
> > library and this explains why the match does not happen for Java
> > mapscript, while it does happen in php mapscript. If I am right also
> > the mapserver cgi should be affected and possibly all other mapscript
> > too.
> >
> > It would be very interesting if someone could report on similar
> > experiences with the cgi-bin version of mapserver.
> >
> > Thanks,
> > Umberto
> >
> > > Here is what I do:
> > >
> > > layer.queryByAttributes(map,"KREIS_NAME", "/Südliche Weinstraße/",
> > > mapscriptConstants.MS_MULTIPLE);
> > > layer.open();
> > > System.out.println( "Result Count: " +layer.getNumResults() );
> > > layer.close();
> > >
> > > The result is always null while replacing the qstring with something
> > > that doesn't contain special characters (e.g.
> > > 'Mainz-Bingen') works fine.
> > >
> > > As noted above the following layer definition in a mapfile works 
fine
> > >
> > > LAYER
> > >      NAME kreis
> > >      STATUS DEFAULT
> > >      TYPE polygon
> > >      DATA "/tmp/subset"
> > >      TEMPLATE "kreis.html"
> > >      CLASSITEM KREIS_NAME
> > >      CLASS
> > >        NAME Boundary
> > >        COLOR 128 128 0
> > >        OUTLINECOLOR 0 0 0
> > >        EXPRESSION /Südliche Weinstraße/
> > >      END
> > > END
> > >
> > >
> > > but this does not:
> > >
> > > layer.setClassitem("KREIS_NAME");
> > > classObj cl = new classObj(layer);
> > > cl.setName("Classname");
> > > cl.setExpression("/Südliche Weinstraße/");
> > >
> > > I use Mapserver 4.8.1 on W2k, Tomcat 5.0.28.
> > >
> > > I can provide some sample data, just in case someone likes to 
reproduce.
> > >
> > > Any help is appreciated.
> > >
> > > best regards
> > > Oliver
> > > --
> > > Dipl.-Geogr. Oliver Wesp
> > > Gesellschaft fuer geografische Datenverarbeitung
> > > Binger Strasse 49-51
> > > D-55218 Ingelheim
> > > fon: +49 6132 714818
> > > fax: +49 6132 714828
> > > http: www.gdv.com
> > >
> >
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20060418/65d74928/attachment.htm>


More information about the MapServer-users mailing list