aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeandro Silva Ferreira <leandrosilvaferreira@gmail.com>2012-08-15 11:04:16 -0400
committerLeandro Silva Ferreira <leandrosilvaferreira@gmail.com>2012-08-15 11:04:16 -0400
commit3a78e641bacccaca181bbd292f0f2f0d579b5caf (patch)
tree5655a02dbcbb160bdc8b15551109892acfefaa99
parent704decd15f70a0251675041826c472b7326ae40c (diff)
downloadtraccar-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.cfg8
-rw-r--r--src/org/traccar/Server.java2
-rw-r--r--src/org/traccar/TrackerEventHandler.java3
-rw-r--r--src/org/traccar/http/WebServer.java5
-rw-r--r--src/org/traccar/model/DatabaseDataManager.java1
-rw-r--r--src/web/index.html52
-rwxr-xr-x[-rw-r--r--]test.sh0
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?
}
diff --git a/test.sh b/test.sh
index 03c1af4fe..03c1af4fe 100644..100755
--- a/test.sh
+++ b/test.sh