44

This is tricky for two reasons: first, limiting the points to a circle instead of a square; second, accounting for distortions in the distance calculations. Many GISes include capabilities that automatically and transparently handle both complications. However, the tags here suggest that a GIS-independent description of an algorithm may be desirable. To ...


29

The radius measurements surely are subject to some error. I would expect the amount of error to be proportional to the radii themselves. Let us assume the measurements are otherwise unbiased. A reasonable solution then uses weighted nonlinear least squares fitting, with weights inversely proportional to the squared radii. This is standard stuff available ...


21

I've been using PostGIS for a few years and only recently started to investigate how I could use MongoDB to deal with certain use-cases. I was dealing with point data that had sparse fields - like OSM data with a varying number of tags per record, and since MongoDB has no schema, it lends itself well to this. I loaded a sample of this data into an instance ...


16

SW 1/ 4NE1/ 4sec. 29, T. 23 N., R. 8 W is not a direction, it's a location. Specifically, it is the southwest quarter of the NE quarter section of section 29, township 23 North, range 8 West. These terms are with respect to the public lands survey system (PLSS). Using the BLM Interactive map I navigated to this location and then eyeballed the SW quarter of ...


12

Averaging only makes sense if you assume that the "noise" in your location measurements is roughly symmetrical - evenly distributed in every direction. That is, for any one measurement, it's equally likely to be wrong in any particular direction. It is probably possible that you could get a noise distribution that isn't symmetrical. For example, if your GPS ...


12

UTM 32U is one tile of the UTM 32N zone. This image from Wikipedia (here the link to the following image) should explain it clearly:


11

Implemented for Javascript: var r = 100/111300 // = 100 meters , y0 = original_lat , x0 = original_lng , u = Math.random() , v = Math.random() , w = r * Math.sqrt(u) , t = 2 * Math.PI * v , x = w * Math.cos(t) , y1 = w * Math.sin(t) , x1 = x / Math.cos(y0) newY = y0 + y1 newX = x0 + x1


10

The correct implementation is: public static void getLocation(double x0, double y0, int radius) { Random random = new Random(); // Convert radius from meters to degrees double radiusInDegrees = radius / 111000f; double u = random.nextDouble(); double v = random.nextDouble(); double w = radiusInDegrees * Math.sqrt(u); double t = ...


8

Basemap should fit your need. Its default projection is the raw use of (long, lat) for plotting/processing. In this case, it also takes projection='cyl' to conform with general uses. Here is the code to try:- from mpl_toolkits.basemap import Basemap bm = Basemap() # default: projection='cyl' print bm.is_land(99.675, 13.104) #True print bm.is_land(100.539,...


7

IBlue 737/747 are great passive GPS collectors. No screen/map (there's your primary power drain... not the GPS). A little bigger than a Matchbox car. Rechargable 23-26hr cell-phone battery. Collects user-selectable items (lat, long, altitude, speed, LDOP, PDOP, etc). Customized collection time or spacing (every x seconds or positino change: 10 feet, 50 ...


7

You might be interested in Traccar which does exactly what you are looking for. Plus it is open source. Plus it is already a web-server. Plus you can install it on Amazon Ec2 and link the database with Amazon RDS service. Answering the database comment: here


7

Getting a location from a string is called Geocoding and there are a number of services offering that. The geocoder from the OpenStreetMap project is called Nominatim and is freely available, you could simply use the API: https://nominatim.openstreetmap.org/search?q=Berlin,+Germany&format=json ✔ https://nominatim.openstreetmap.org/search?q=TX&...


6

I've integrated KCS traceme products for vehicle track and trace. The devices I used are being resold and re-branded often. Their product is called traceme (as a google keyword that sucks a bit). The programming goodies you can find here. That is a beta link for developers. You can find a PHP class (which I use) but also a JavaScript and a windows ...


6

After googling a bit more, I found this paper, Using Wi-Fi for Navigating the Great Indoors. I suppose the algorithm that handles multiple fingerprints, plus compass and accelerometer is what caught Apple's eye. When a gadget using WiFiSLAM wants to know its location, it analyzes the signal strengths and unique IDs of all the Wi-Fi networks around it....


6

I think your best bet is going to be downloading GIS data for populated places and coastlines (Natural Earth is an oft-recommended source) and performing a proximity analysis using GIS software to exclude all places except those matching some criteria, e.g. within 10 miles of a coastline. Bear in mind the world is a big place, and the coastlines are very ...


6

PROJECTION LAMBERT UNITS METERS DATUM GDA94 SEVEN /* GDA94 SPHEROID GRS80 PARAMETERS -28 00 00 /* 1st standard parallel -36 00 00 /* 2nd standard parallel 135 00 00 /* Central meridian -32 00 00 /* Latitude of projections origin 1000000 /* False easting (meters) 2000000 /* False northin (meters) END should be EPSG:3107 - GDA94 / SA Lambert. This is its ...


5

You could try Flowmap. It is specially designed to analyse flow patterns. You can find it here: http://flowmap.geog.uu.nl/


5

Telic offers special devices for your requirements: http://en.telic.de/en/products/asset-tracking/picotrack This device send its GPS position to a server and also the IMEI of the according SIM card. So you have both, your position and a unique id per device/vehicle. Events can be defined very flexible on movements, distance, leaving areas and so on.


5

You are passing an incorrect argument to the OpenLayers.Geometry.Point constructor. You don't need the lonLat. Try the following: var pointg = new OpenLayers.Geometry.Point(longitudeg, latitudeg); pointg.transform( new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913") );


5

I think you could use the Midpoint formula found at Moveable Type Scripts. This is the half-way point along a great circle path between the two points.1 Formula: Bx = cos(φ2).cos(Δλ) By = cos(φ2).sin(Δλ) φm = atan2( sin(φ1) + sin(φ2), √((cos(φ1)+Bx)² + By²) ) λm = λ1 + atan2(By, cos(φ1)+Bx) JavaScript: var Bx = Math.cos(lat2) * Math.cos(dLon); var ...


5

ESRI have a new tool that allow to add GTFS to a Network Dataset, display GTFS Route Shapes, edit GTFS Stop Locations, calculates transit/walking service areas for a specific time of day and day of the week, and more effective gadegets. There is also a blog avout this tool with samples to each procedure a lot of more links


5

If you are 100% sure that requirements are not going to change, and you just need to store the coordinates of the points, then yes, go ahead and save the data in a MySQL database, as two double columns. But if there is even a little chance that the scope can increase, then I'll suggest that you spend some time setting up a PostGIS database and save the data ...


5

The answer to this kind of issue should be to rasterize the information on to tiles on the server and simply serve the user tiles of the routes that they want to see. There are a plethora of options for doing this, but I think this train of thought is the best solution. Render the desired view on the server and only pass the tiles to the user, wash and ...


5

Your hypothesis is conceptually correct. GPS is a one-way system, with your phone listening to satellites broadcasting hyper-accurate timestamps from orbiting atomic clocks. A regular GPS unit can take 10+ minutes to download the latest satellite positioning information (almanac and ephemeris) needed for triangulation. This can lead to very long delay before ...


5

Typically this is done via the mobile network. You are right about the cellhpone network being unreliable. That's why a lot of the tracking system would cache the GPS positioning data locally in case the network is not available and send it to the server once the network is back.


5

You should have a look at the K-means clustering algorithm, which produces what you are looking for.


5

If the layer is editable all you need to do is right click on the layer and select Toggle Editing and then in the Digitizing Toolbar select the Move Feature(s) button. Then you can click and drag the points however you want. When you are done moving your points select Save Layer Edits also in the Digitizing Toolbar. If the layer is not editable you will need ...


4

Most modern smart phones have a GPS, often assisted by use of cell towers for times when there is weak GPS signal, such as travel in downtown, etc. Provided you have a GPS capable cell phone and there is a GPS tracking application available for your device, it would be simply a matter of installing and configuring the application to track your position and ...


4

US Board on Geographic Names might be useful. Has link to NGA's list of foreign place names. Update: NGA doesn't return anything for DEW Line ... must be near Lake Potato.


4

maybe this can help you (shorelines): http://www.ngdc.noaa.gov/mgg/shorelines/gshhs.html they have both ESRI shapefile format or binary format


Only top voted, non community-wiki answers of a minimum length are eligible