perl: geo::proj4 unter strawberry-perl

hi !

ich versuche Geo::Proj4 unter Stawberry-Perl zu installieren. Bin auch schon bei der perl-community am Fragen - aber irgendwie ist da Geo::Proj4 wohl nicht so verbreitet.

Wenn man mal bei Google fragt, dann haben schon mehre Probleme damit gehabt.

Hat einer von Euch das am Schluss hinbekommen und wie lautet die Zauberformel?

Gruß Jan :slight_smile:

Das Modul läßt sich (derzeit) nicht sauber installieren (zumindest nicht unter OS X):

~> cpanm Geo::Proj4 --sudo
→ Working on Geo::Proj4
Fetching http://www.cpan.org/authors/id/M/MA/MARKOV/Geo-Proj4-1.05.tar.gz … OK
Configuring Geo-Proj4-1.05 … OK
Building and testing Geo-Proj4-1.05 … FAIL
! Installing Geo::Proj4 failed. See /Users/Klaus/.cpanm/work/1400867493.41678/build.log for details. Retry with --force to force install it.

Gruß Klaus

Läuft unter Ubuntu ohne Probleme - wahrscheinlich habt ihr die PROJ.4 Library nicht installiert. Geo::Proj4 ist ja nur ein Wrapper.

Im INSTALL File wird darauf hingewiesen, dass man unter Windows dazu auch die FWTools installieren kann und die über Umgebungsvariable bei der Installation angeben kann.


== INSTALL

= Libray from scratch

Geo::Proj4 uses XS to wrap the PROJ.4 cartographic projections library.
You will need to have at least version 4.4.9 of the PROJ.4 library
installed in order to build and use this module. You can get source
code and binaries for the PROJ.4 library from its home page at
http://www.remotesensing.org/proj/.

= FWTools

An other way to get the library is by installing FWTools, available
at http://fwtools.maptools.org/

In case you have installed FWTools, set environment variable
GEOPROJ_FWTOOLS_DIR to the right location, before running Makefile.PL

   export GEOPROJ_FWTOOLS_DIR=/home/myself/FWTools
   perl Makefile.PL
   make
   make test
   make install


perl
  use strict;
  use Geo::Proj4;

  my $proj = Geo::Proj4->new( proj => "utm", zone => 10 );
  my ($x, $y) = $proj->forward(38.40342, -122.81856);
  print "conversion to UTM: y is  $y\n";
  print "conversion to UTM: x is  $x\n";

  my ($lat, $long) = $proj->inverse($x, $y);
  print "inverse conversion: lat is $lat \n" ;
  print "inverse conversion: long is $long \n" ;

Ergebnis:

conversion to UTM: y is 4250592.43048087
conversion to UTM: x is 515842.291751804
inverse conversion: lat is 38.40342
inverse conversion: long is -122.81856

hi !

ich rufe für die Installation unter Strawberry immer das CPAN-Tool auf und dort dann install [paketname] und dann werden die Daten gezogen aus dem Web.

Für #3 muss ich das aber vorher lokal ablegen - kann mir einer sagen, wie ich dann die Installation aufrufe ?

Gruß Jan :slight_smile:

Hmmm. unter Windows kommen sich verschiedene Defnitionen von PVALUE in die Query. Keine Ahnung, wie man das auf die Schnelle beheben kann.

Auszug aus dem build.log:


Checking dependencies from MYMETA.json ...
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.94)
Building and testing Geo-Proj4-1.05
cp lib/Geo/Proj4.pod blib\lib\Geo\Proj4.pod
cp lib/Geo/Proj4.pm blib\lib\Geo\Proj4.pm
Running Mkbootstrap for Geo::Proj4 ()
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 644 Proj4.bs
C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils\xsubpp  -typemap C:\strawberry\perl\lib\ExtUtils\typemap -typemap typemap  Proj4.xs > Proj4.xsc && C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mv -- Proj4.xsc Proj4.c
gcc -c  -I. -IC:\PROGRA~1\FWTOOL~1.7/include 	-s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fno-strict-aliasing -mms-bitfields -s -O2 	  -DVERSION=\"1.05\" 	-DXS_VERSION=\"1.05\"  "-IC:\strawberry\perl\lib\CORE"   Proj4.c
In file included from Proj4.xs:7:0:
C:\PROGRA~1\FWTOOL~1.7/include/projects.h:150:47: error: conflicting types for 'PVALUE'
In file included from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/windows.h:66:0,
                 from C:\strawberry\perl\lib\CORE/win32.h:125,
                 from C:\strawberry\perl\lib\CORE/win32thread.h:4,
                 from C:\strawberry\perl\lib\CORE/perl.h:2869,
                 from Proj4.xs:2: