diff options
author | Leandro Silva Ferreira <leandrosilvaferreira@gmail.com> | 2012-08-15 11:04:16 -0400 |
---|---|---|
committer | Leandro Silva Ferreira <leandrosilvaferreira@gmail.com> | 2012-08-15 11:04:16 -0400 |
commit | 3a78e641bacccaca181bbd292f0f2f0d579b5caf (patch) | |
tree | 5655a02dbcbb160bdc8b15551109892acfefaa99 | |
parent | 704decd15f70a0251675041826c472b7326ae40c (diff) | |
download | traccar-server-3a78e641bacccaca181bbd292f0f2f0d579b5caf.tar.gz traccar-server-3a78e641bacccaca181bbd292f0f2f0d579b5caf.tar.bz2 traccar-server-3a78e641bacccaca181bbd292f0f2f0d579b5caf.zip |
Changes to save de address field from geocoding and show it on markers
at
the map and on position's grid
-rw-r--r-- | setup/windows/windowsPG.cfg | 8 | ||||
-rw-r--r-- | src/org/traccar/Server.java | 2 | ||||
-rw-r--r-- | src/org/traccar/TrackerEventHandler.java | 3 | ||||
-rw-r--r-- | src/org/traccar/http/WebServer.java | 5 | ||||
-rw-r--r-- | src/org/traccar/model/DatabaseDataManager.java | 1 | ||||
-rw-r--r-- | src/web/index.html | 52 | ||||
-rwxr-xr-x[-rw-r--r--] | test.sh | 0 |
7 files changed, 42 insertions, 29 deletions
diff --git a/setup/windows/windowsPG.cfg b/setup/windows/windowsPG.cfg index 28e29dbad..aaefc4b21 100644 --- a/setup/windows/windowsPG.cfg +++ b/setup/windows/windowsPG.cfg @@ -14,6 +14,7 @@ <entry key="database.refreshDelay">300</entry>
<!-- Create database schema -->
+ <!--
<entry key="database.initialize">
CREATE SEQUENCE devicesSQ START 1 INCREMENT 1;
CREATE SEQUENCE positionsSQ START 1 INCREMENT 1;
@@ -22,6 +23,7 @@ CREATE TABLE positions (id int8 NOT NULL,address varchar(255),altitude float8,course float8,extendedinfo varchar(255),latitude float8 NOT NULL,longitude float8 NOT NULL,power float8 NOT NULL,speed float8,"time" timestamp NOT NULL,"valid" bool,device_id int8 NOT NULL,"mode" int4,CONSTRAINT positions_pkey PRIMARY KEY (id),CONSTRAINT fk_device FOREIGN KEY (device_id) REFERENCES devices (id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION) WITH (OIDS=FALSE);
ALTER TABLE positions OWNER TO postgres;
</entry>
+ -->
<!-->
id - Long
@@ -80,13 +82,15 @@ extended_info - String (XML)
<-->
<entry key="database.insertPosition">
- INSERT INTO positions (id, device_id, time, valid, latitude, longitude, speed, course, power, mode)
- VALUES (nextval('positionsSQ'),:device_id, :time, :valid, :latitude, :longitude, :speed, :course, :power, :mode)
+ INSERT INTO positions (id, device_id, time, valid, latitude, longitude, speed, course, power, mode, address)
+ VALUES (nextval('positionsSQ'),:device_id, :time, :valid, :latitude, :longitude, :speed, :course, :power, :mode, :address)
</entry>
<!-- Web interface port -->
<entry key="http.enable">true</entry>
<entry key="http.port">8082</entry>
+
+ <entry key="geocoder.enable">true</entry>
<!-- Logging options -->
<entry key="logger.enable">true</entry>
diff --git a/src/org/traccar/Server.java b/src/org/traccar/Server.java index 32a2888cc..15514bffc 100644 --- a/src/org/traccar/Server.java +++ b/src/org/traccar/Server.java @@ -193,7 +193,7 @@ public class Server { } private void initGeocoder(Properties properties) throws IOException { - if (Boolean.parseBoolean("geocoder.enable")) { + if (Boolean.parseBoolean(properties.getProperty("geocoder.enable"))) { geocoder = new GoogleReverseGeocoder(); } } diff --git a/src/org/traccar/TrackerEventHandler.java b/src/org/traccar/TrackerEventHandler.java index 2a66a084f..07ecf71de 100644 --- a/src/org/traccar/TrackerEventHandler.java +++ b/src/org/traccar/TrackerEventHandler.java @@ -57,7 +57,8 @@ public class TrackerEventHandler extends SimpleChannelHandler { ", speed: " + position.getSpeed() + ", course: " + position.getCourse() + ", power: " + position.getPower() + - ", mode: " + position.getMode()); + ", mode: " + position.getMode() + + ", address: " + position.getAddress()); } // Write position to database diff --git a/src/org/traccar/http/WebServer.java b/src/org/traccar/http/WebServer.java index e379a0a9a..5fac8ff65 100644 --- a/src/org/traccar/http/WebServer.java +++ b/src/org/traccar/http/WebServer.java @@ -146,7 +146,7 @@ public class WebServer { Iterator<Position> i = dataManager.getPositions(Long.valueOf(deviceId)).iterator(); while (i.hasNext()) { Position position = i.next(); - out.format("{'device_id':%d,'time':'%s','valid':%b,'latitude':%s,'longitude':%s,'speed':%s,'course':%s,'mode':%d}", + out.format("{'device_id':%d,'time':'%s','valid':%b,'latitude':%s,'longitude':%s,'speed':%s,'course':%s,'mode':%d,'address':'%s'}", position.getDeviceId(), position.getTimeFormated(), position.getValid(), @@ -154,7 +154,8 @@ public class WebServer { position.getLongitude().toString(), position.getSpeed().toString(), position.getCourse().toString(), - position.getMode()); + position.getMode(), + position.getAddress()); if (i.hasNext()) out.print(","); } } diff --git a/src/org/traccar/model/DatabaseDataManager.java b/src/org/traccar/model/DatabaseDataManager.java index 2207d272b..3092744c0 100644 --- a/src/org/traccar/model/DatabaseDataManager.java +++ b/src/org/traccar/model/DatabaseDataManager.java @@ -211,6 +211,7 @@ public class DatabaseDataManager implements DataManager { position.setCourse(result.getDouble("course")); position.setPower(result.getDouble("power")); position.setMode(result.getInt("mode")); + position.setAddress(result.getString("address")); positionList.add(position); } diff --git a/src/web/index.html b/src/web/index.html index dcc4771db..6be205300 100644 --- a/src/web/index.html +++ b/src/web/index.html @@ -166,11 +166,12 @@ setCenter: { }, // or just specify lat/long +*/ setCenter: { - lat: 42.345573, - lng: -71.098326 -} - * </code></pre> + lat: '-15.618767', + lng: '-56.083214' +}, + /* * </code></pre>listeners */ /** * @cfg {Number} zoomLevel @@ -178,7 +179,7 @@ setCenter: { * Also used as the zoom level for panoramas, zero specifies no zoom at all. * Defaults to <tt>3</tt>. */ - zoomLevel: 3, + zoomLevel: 10, /** * @cfg {Number} yaw * The Yaw, or rotational direction of the users perspective in degrees. Only applies to panoramas. @@ -291,7 +292,7 @@ markers: [{ Ext.defer(function(){ if (this.gmapType === 'map'){ - this.gmap = new google.maps.Map(this.getEl().dom, {zoom:this.zoomLevel,mapTypeId: google.maps.MapTypeId.ROADMAP}); + this.gmap = new google.maps.Map(this.getEl().dom, {zoom:this.zoomLevel,mapTypeId: google.maps.MapTypeId.HYBRID}); this.mapDefined = true; this.mapDefinedGMap = true; } @@ -302,7 +303,7 @@ markers: [{ } if (!this.mapDefined && this.gmapType){ - this.gmap = new google.maps.Map(this.getEl().dom, {zoom:this.zoomLevel,mapTypeId: google.maps.MapTypeId.ROADMAP}); + this.gmap = new google.maps.Map(this.getEl().dom, {zoom:this.zoomLevel,mapTypeId: google.maps.MapTypeId.HYBRID}); this.gmap.setMapTypeId(this.gmapType); this.mapDefined = true; this.mapDefinedGMap = true; @@ -317,7 +318,7 @@ markers: [{ this.geoCodeLookup(this.setCenter.geoCodeAddr, this.setCenter.marker, false, true, this.setCenter.listeners); }else{ if (this.gmapType === 'map'){ - var point = new google.maps.LatLng(this.setCenter.lat,this.setCenter.lng); + var point = new google.maps.LatLng(-15.618767,-56.083214); this.getMap().setCenter(point, this.zoomLevel); this.lastCenter = point; } @@ -473,9 +474,7 @@ markers: [{ this.lastCenter = point; } - var mark = new google.maps.Marker(Ext.apply(marker, { - position: point - })); + var mark = new google.maps.Marker(Ext.apply(marker, {position: point})); if (marker.infoWindow){ this.createInfoWindow(marker.infoWindow, point, mark); @@ -772,7 +771,8 @@ Ext.onReady(function() { {name: 'speed', type: 'float'}, {name: 'course', type: 'float'}, {name: 'power', type: 'float'}, - {name: 'mode', type: 'int'} + {name: 'mode', type: 'int'}, + {name: 'address', type: 'string'} ] }); @@ -811,7 +811,8 @@ Ext.onReady(function() { 'speed', 'course', 'power', - 'mode' + 'mode', + 'address' ], proxy: { type: 'ajax', @@ -932,25 +933,30 @@ Ext.onReady(function() { ], columns: [ {header: 'Id Dispositivo', dataIndex: 'device_id'}, - {header: 'Data/Hora',dataIndex: 'time', + {header: 'Data/Hora', + dataIndex: 'time', flex: 1, - renderer: Ext.util.Format.dateRenderer('d/m/Y H:i:s') + sortable: true, + renderer: Ext.util.Format.dateRenderer('d/m/Y H:i:s'), + width: 100 }, - {header: 'Válido', dataIndex: 'valid'}, - {header: 'Latitude', dataIndex: 'latitude'}, - {header: 'Longitude', dataIndex: 'longitude'}, - {header: 'Velocidade', dataIndex: 'speed'}, - {header: 'Curso', dataIndex: 'course'}, - {header: 'Voltagem', dataIndex: 'power'}, - {header: 'Modo', dataIndex: 'mode'} + {header: 'Endereço', dataIndex: 'address', width: 480}, + {header: 'Latitude', dataIndex: 'latitude', width: 70}, + {header: 'Longitude', dataIndex: 'longitude', width: 70}, + {header: 'Velocidade', dataIndex: 'speed', width: 70}, + {header: 'Curso', dataIndex: 'course', width: 70}, + {header: 'Voltagem', dataIndex: 'power', width: 70}, + {header: 'Modo', dataIndex: 'mode', width: 70}, + {header: 'Válido', dataIndex: 'valid', width: 70} ], listeners: { selectionchange: function(sender, selected, eOpts) { if (selected.length != 0) { var lat = positionsPanel.getSelectionModel().getLastSelected().get('latitude'); var lng = positionsPanel.getSelectionModel().getLastSelected().get('longitude'); + var title = positionsPanel.getSelectionModel().getLastSelected().get('address'); var point = new google.maps.LatLng(lat, lng); - map.addMarker(point, {lat: lat, lng: lng}, true, true); + map.addMarker(point, {lat: lat, lng: lng, title: title}, true, true); } else { map.clearMarkers(); // private? } |