'10/11/23 エンコードの指定追加
'12/05/20 Osmarender 関連行をコメントアウト
TMPFILE=/tmp/$$ for GPS in *.GPS do GPX=`echo $GPS | sed -e 's/.GPS/.gpx/'` echo $GPS '->' $GPX sed \ -e '/^\$GPGGA,[^,]*,0/d' \ -e '/^\$GPRMC,[^,]*,[^,]*,0/d' \ -e '/^\$GPGLL,0/d' \ $GPS > $TMPFILE /Program\ Files/GPSBabel/GPSBABEL -i nmea -f $TMPFILE -o gpx -F $GPX rm $TMPFILE done # lat lon # <trkpt lat="34.931079100" lon="135.724934900"> LAT1MIN=90 LAT2MIN=9999 LON1MIN=180 LON2MIN=9999 LAT1MAX=0 LAT2MAX=0 LON1MAX=0 LON2MAX=0 set `sed -n -e 's/^.*lat="\([0-9][0-9]*\)\.\([0-9]\{1,4\}\).*" lon="\([0-9][0-9]*\)\.\([0-9]\{1,4\}\).*".*$/\1 \2 \3 \4/p' *.gpx | while read LAT1 LAT2 LON1 LON2 do if [ $LAT1 -eq $LAT1MIN -a $LAT2 -lt $LAT2MIN -o \ $LAT1 -lt $LAT1MIN ] then LAT1MIN=$LAT1 LAT2MIN=$LAT2 fi if [ $LAT1 -eq $LAT1MAX -a $LAT2 -gt $LAT2MAX -o \ $LAT1 -gt $LAT1MAX ] then LAT1MAX=$LAT1 LAT2MAX=$LAT2 fi if [ $LON1 -eq $LON1MIN -a $LON2 -lt $LON2MIN -o \ $LON1 -lt $LON1MIN ] then LON1MIN=$LON1 LON2MIN=$LON2 fi if [ $LON1 -eq $LON1MAX -a $LON2 -gt $LON2MAX -o \ $LON1 -gt $LON1MAX ] then LON1MAX=$LON1 LON2MAX=$LON2 fi echo $LAT1MIN $LAT2MIN $LAT1MAX $LAT2MAX $LON1MIN $LON2MIN $LON1MAX $LON2MAX done | tail -1` LATMIN=$1$2 LATMAX=$3$4 LONMIN=$5$6 LONMAX=$7$8 echo $LATMIN $LONMIN $LATMAX $LONMAX LAT=`expr \( $LATMIN + $LATMAX \) / 2 | sed -e 's/^\([0-9][0-9]\)\([0-9][0-9]\{1,4\}\).*$/\1.\2/'` LON=`expr \( $LONMIN + $LONMAX \) / 2 | sed -e 's/^\([0-9][0-9][0-9]\)\([0-9]\{1,4\}[0-9]*\)$/\1.\2/'` echo $LATMIN $LATMAX $LAT echo $LONMIN $LONMAX $LON cat > index.html <<EOF <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!--- add for firefox Nov.23rd, 2010 ---> <title>Simple OSM GPX Track</title> <!-- bring in the OpenLayers javascript library (here we bring it from the remote site, but you could easily serve up this javascript yourself) --> <script src="http://www.openlayers.org/api/OpenLayers.js"></script> <!-- bring in the OpenStreetMap OpenLayers layers. Using this hosted file will make sure we are kept up to date with any necessary changes --> <script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script> <script type="text/javascript"> // Start position for the map (hardcoded here for simplicity, // but maybe you want to get from URL params) var lat=$LAT var lon=$LON var zoom=10 var map; //complex object of type OpenLayers.Map function init() { map = new OpenLayers.Map ("map", { controls:[ new OpenLayers.Control.Navigation(), new OpenLayers.Control.PanZoomBar(), new OpenLayers.Control.LayerSwitcher(), new OpenLayers.Control.Attribution()], maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34), maxResolution: 156543.0399, numZoomLevels: 19, units: 'm', projection: new OpenLayers.Projection("EPSG:900913"), displayProjection: new OpenLayers.Projection("EPSG:4326") } ); // Define the map layer // Note that we use a predefined layer that will be // kept up to date with URL changes // Here we define just one layer, but providing a choice // of several layers is also quite simple // Other defined layers are OpenLayers.Layer.OSM.Mapnik, OpenLayers.Layer.OSM.Maplint and OpenLayers.Layer.OSM.CycleMap layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik"); map.addLayer(layerMapnik); // removed layerTilesAtHome = new OpenLayers.Layer.OSM.Osmarender("Osmarender"); // removed map.addLayer(layerTilesAtHome); layerCycleMap = new OpenLayers.Layer.OSM.CycleMap("CycleMap"); map.addLayer(layerCycleMap); layerMarkers = new OpenLayers.Layer.Markers("Markers"); map.addLayer(layerMarkers); // Add the Layer with GPX Track EOF for gpx in *.gpx do GPS=`echo $gpx | sed -e 's/.gpx/.GPS/'` if [ -f $GPS ] then cat >> index.html <<EOF var lgpx = new OpenLayers.Layer.GML("MB Bruderholz", "$gpx", { format: OpenLayers.Format.GPX, style: {strokeColor: "blue", strokeWidth: 5, strokeOpacity: 0.5}, projection: new OpenLayers.Projection("EPSG:4326") }); map.addLayer(lgpx); EOF else cat >> index.html <<EOF var lgpx = new OpenLayers.Layer.GML("MB Bruderholz", "$gpx", { format: OpenLayers.Format.GPX, style: {strokeColor: "red", strokeWidth: 5, strokeOpacity: 0.5}, projection: new OpenLayers.Projection("EPSG:4326") }); map.addLayer(lgpx); EOF fi done cat >> index.html <<EOF var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()); map.setCenter (lonLat, zoom); } </script> </head> <!-- body.onload is called once the page is loaded (call the 'init' function) --> <body onload="init();"> <!-- define a DIV into which the map will appear. Make it take up the whole window --> <div style="width:100%; height:100%" id="map"></div> </body> </html> EOF
← X01T から Touch Diamond に DUN |
山下康成の きばらないブログ |
→ フリック入力化 |
Copyright (C) 2003-2017 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市