diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2016-12-19 08:24:15 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2016-12-19 08:24:15 +1300 |
commit | 12e88e5cccc00eb5882124db9e0350ae568902e6 (patch) | |
tree | 8581901fde947d65ce5305fdbd1d9410dd1690a9 | |
parent | 54e738d3281a463a0ea3fcf2026c2464529a9b58 (diff) | |
download | trackermap-server-12e88e5cccc00eb5882124db9e0350ae568902e6.tar.gz trackermap-server-12e88e5cccc00eb5882124db9e0350ae568902e6.tar.bz2 trackermap-server-12e88e5cccc00eb5882124db9e0350ae568902e6.zip |
Better network location support
-rw-r--r-- | schema/changelog-3.10.xml | 7 | ||||
-rw-r--r-- | setup/default.xml | 4 | ||||
-rw-r--r-- | src/org/traccar/model/CellTower.java | 63 | ||||
-rw-r--r-- | src/org/traccar/model/Device.java | 1 | ||||
-rw-r--r-- | src/org/traccar/model/Network.java | 110 | ||||
-rw-r--r-- | src/org/traccar/model/Position.java | 20 | ||||
-rw-r--r-- | src/org/traccar/model/WifiAccessPoint.java | 33 |
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; + } + +} |