aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2016-12-19 08:24:15 +1300
committerAnton Tananaev <anton.tananaev@gmail.com>2016-12-19 08:24:15 +1300
commit12e88e5cccc00eb5882124db9e0350ae568902e6 (patch)
tree8581901fde947d65ce5305fdbd1d9410dd1690a9
parent54e738d3281a463a0ea3fcf2026c2464529a9b58 (diff)
downloadtrackermap-server-12e88e5cccc00eb5882124db9e0350ae568902e6.tar.gz
trackermap-server-12e88e5cccc00eb5882124db9e0350ae568902e6.tar.bz2
trackermap-server-12e88e5cccc00eb5882124db9e0350ae568902e6.zip
Better network location support
-rw-r--r--schema/changelog-3.10.xml7
-rw-r--r--setup/default.xml4
-rw-r--r--src/org/traccar/model/CellTower.java63
-rw-r--r--src/org/traccar/model/Device.java1
-rw-r--r--src/org/traccar/model/Network.java110
-rw-r--r--src/org/traccar/model/Position.java20
-rw-r--r--src/org/traccar/model/WifiAccessPoint.java33
7 files changed, 236 insertions, 2 deletions
diff --git a/schema/changelog-3.10.xml b/schema/changelog-3.10.xml
index 8cd7b3704..996b2dc6a 100644
--- a/schema/changelog-3.10.xml
+++ b/schema/changelog-3.10.xml
@@ -41,5 +41,12 @@
<addForeignKeyConstraint baseColumnNames="calendarid" baseTableName="geofences" constraintName="fk_geofence_calendar_calendarid" onDelete="SET NULL" onUpdate="RESTRICT" referencedColumnNames="id" referencedTableName="calendars"/>
+ <addColumn tableName="positions">
+ <column name="accuracy" type="DOUBLE" defaultValueNumeric="0">
+ <constraints nullable="false" />
+ </column>
+ <column name="network" type="VARCHAR(4000)" />
+ </addColumn>
+
</changeSet>
</databaseChangeLog>
diff --git a/setup/default.xml b/setup/default.xml
index 0786d9fbc..95a850979 100644
--- a/setup/default.xml
+++ b/setup/default.xml
@@ -176,8 +176,8 @@
</entry>
<entry key='database.insertPosition'>
- INSERT INTO positions (deviceId, protocol, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, course, address, attributes)
- VALUES (:deviceId, :protocol, :now, :deviceTime, :fixTime, :valid, :latitude, :longitude, :altitude, :speed, :course, :address, :attributes)
+ INSERT INTO positions (deviceId, protocol, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, course, address, attributes, accuracy, network)
+ VALUES (:deviceId, :protocol, :now, :deviceTime, :fixTime, :valid, :latitude, :longitude, :altitude, :speed, :course, :address, :attributes, :accuracy, :network)
</entry>
<entry key='database.selectLatestPositions'>
diff --git a/src/org/traccar/model/CellTower.java b/src/org/traccar/model/CellTower.java
new file mode 100644
index 000000000..3447bb921
--- /dev/null
+++ b/src/org/traccar/model/CellTower.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2016 Anton Tananaev (anton@traccar.org)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.traccar.model;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
+public class CellTower {
+
+ private Integer cellId;
+
+ public Integer getCellId() {
+ return cellId;
+ }
+
+ public void setCellId(Integer cellId) {
+ this.cellId = cellId;
+ }
+
+ private Integer locationAreaCode;
+
+ public Integer getLocationAreaCode() {
+ return locationAreaCode;
+ }
+
+ public void setLocationAreaCode(Integer locationAreaCode) {
+ this.locationAreaCode = locationAreaCode;
+ }
+
+ private Integer mobileCountryCode;
+
+ public Integer getMobileCountryCode() {
+ return mobileCountryCode;
+ }
+
+ public void setMobileCountryCode(Integer mobileCountryCode) {
+ this.mobileCountryCode = mobileCountryCode;
+ }
+
+ private Integer mobileNetworkCode;
+
+ public Integer getMobileNetworkCode() {
+ return mobileNetworkCode;
+ }
+
+ public void setMobileNetworkCode(Integer mobileNetworkCode) {
+ this.mobileNetworkCode = mobileNetworkCode;
+ }
+
+}
diff --git a/src/org/traccar/model/Device.java b/src/org/traccar/model/Device.java
index e492a6120..22426c4db 100644
--- a/src/org/traccar/model/Device.java
+++ b/src/org/traccar/model/Device.java
@@ -141,4 +141,5 @@ public class Device extends Extensible {
public void setCategory(String category) {
this.category = category;
}
+
}
diff --git a/src/org/traccar/model/Network.java b/src/org/traccar/model/Network.java
new file mode 100644
index 000000000..9dd315640
--- /dev/null
+++ b/src/org/traccar/model/Network.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2016 Anton Tananaev (anton@traccar.org)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.traccar.model;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
+public class Network {
+
+ private Integer homeMobileCountryCode;
+
+ public Integer getHomeMobileCountryCode() {
+ return homeMobileCountryCode;
+ }
+
+ public void setHomeMobileCountryCode(Integer homeMobileCountryCode) {
+ this.homeMobileCountryCode = homeMobileCountryCode;
+ }
+
+ private Integer homeMobileNetworkCode;
+
+ public Integer getHomeMobileNetworkCode() {
+ return homeMobileNetworkCode;
+ }
+
+ public void setHomeMobileNetworkCode(Integer homeMobileNetworkCode) {
+ this.homeMobileNetworkCode = homeMobileNetworkCode;
+ }
+
+ private String radioType;
+
+ public String getRadioType() {
+ return radioType;
+ }
+
+ public void setRadioType(String radioType) {
+ this.radioType = radioType;
+ }
+
+ private String carrier;
+
+ public String getCarrier() {
+ return carrier;
+ }
+
+ public void setCarrier(String carrier) {
+ this.carrier = carrier;
+ }
+
+ private Boolean considerIp = false;
+
+ public Boolean getConsiderIp() {
+ return considerIp;
+ }
+
+ public void setConsiderIp(Boolean considerIp) {
+ this.considerIp = considerIp;
+ }
+
+ private Collection<CellTower> cellTowers;
+
+ public Collection<CellTower> getCellTowers() {
+ return cellTowers;
+ }
+
+ public void setCellTowers(Collection<CellTower> cellTowers) {
+ this.cellTowers = cellTowers;
+ }
+
+ public void addCellTower(CellTower cellTower) {
+ if (cellTowers == null) {
+ cellTowers = new ArrayList<>();
+ }
+ cellTowers.add(cellTower);
+ }
+
+ private Collection<WifiAccessPoint> wifiAccessPoints;
+
+ public Collection<WifiAccessPoint> getWifiAccessPoints() {
+ return wifiAccessPoints;
+ }
+
+ public void setWifiAccessPoints(Collection<WifiAccessPoint> wifiAccessPoints) {
+ this.wifiAccessPoints = wifiAccessPoints;
+ }
+
+ public void addWifiAccessPoint(WifiAccessPoint wifiAccessPoint) {
+ if (wifiAccessPoints == null) {
+ wifiAccessPoints = new ArrayList<>();
+ }
+ wifiAccessPoints.add(wifiAccessPoint);
+ }
+
+}
diff --git a/src/org/traccar/model/Position.java b/src/org/traccar/model/Position.java
index 8ca2588e2..19874ae91 100644
--- a/src/org/traccar/model/Position.java
+++ b/src/org/traccar/model/Position.java
@@ -248,4 +248,24 @@ public class Position extends Message {
this.address = address;
}
+ private double accuracy;
+
+ public double getAccuracy() {
+ return accuracy;
+ }
+
+ public void setAccuracy(double accuracy) {
+ this.accuracy = accuracy;
+ }
+
+ private Network network;
+
+ public Network getNetwork() {
+ return network;
+ }
+
+ public void setNetwork(Network network) {
+ this.network = network;
+ }
+
}
diff --git a/src/org/traccar/model/WifiAccessPoint.java b/src/org/traccar/model/WifiAccessPoint.java
new file mode 100644
index 000000000..e4a613e7c
--- /dev/null
+++ b/src/org/traccar/model/WifiAccessPoint.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2016 Anton Tananaev (anton@traccar.org)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.traccar.model;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
+public class WifiAccessPoint {
+
+ private String macAddress;
+
+ public String getMacAddress() {
+ return macAddress;
+ }
+
+ public void setMacAddress(String macAddress) {
+ this.macAddress = macAddress;
+ }
+
+}