18

This answer has been updated several times to get a solution that gradually adds complexity to the expression. For the final solution, you should go directely to the very bottom (step 5). The history of updating the orignal answer however adds up to a step by step guide of how this solution works, starting with a very easy way. It gives some insight how more ...


14

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


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:


9

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

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. In order to link Traccar with a database like PostGIS, MySQL) see the Traccar page on MySQL Database


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

Accepted answer and derivatives didn't work for me. Results were very inaccurate. Correct implementation in javascript: function pointAtDistance(inputCoords, distance) { const result = {} const coords = toRadians(inputCoords) const sinLat = Math.sin(coords.latitude) const cosLat = Math.cos(coords.latitude) /* go a fixed distance in a ...


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

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

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 ...


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

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 ...


5

The geolocator.reverse() method is expecting a Point obejct or a tuple with two coordinates. However, you are passing redshape, which is a fiona.collection.Collection object with all the features in your shapefile. You have to iterate through the collection, extract the coordinates and then call the geolocator. Here is an example: import fiona from geopy....


5

One option is to use an endpoint point layer, the existing pole polygon layer and to compute a virtual lines layer, that is updated each time the map is moved. The endpoint must have a poleID attribute, that is populated of the polygon it should be connected to. The pole layer must have a unique poleID attribute. The virtual layer can have any attribute from ...


4

If you're looking for something that's really easy to use and your lat/long data come from a shapefile, you could check out the Python Geographic Visualizer (GeoVis) module. It has no dependencies, requires no installation, and is very easy to use. In the newest version you can also zoom in on specific areas and symbolize based on attribute classification: ...


4

Natural Earth project has these datasets and many more: http://www.naturalearthdata.com/features/ To use the data you could: Download QGIS, Download the dataset and unzip it. Drag and drop the .tiff (geotiff raster files) and .shp (shapefile vector files) into the opened QGIS window. All the data uses the standard projection 4326 so no headaches mixing ...


4

I think your first solution, to project the Lat/Long coordinates to your preferred state plane is the right way to go. However, I'm not sure what you mean by "a Geometry Service". Do you mean you're using a 3rd-party web method to perform the coordinate transformation? If so, I would discourage that, as there's not a good reason to have such a dependency in ...


4

tl;dr Does iOS know the phone's location solely from cell tower, i.e. without GPS data? Yes, iOS does, using Assisted GPS (Wikipedia, dmahr). How it works The article Deeper insights into Apple’s “GPS” explains how it works: All iPhones scan their environment for WiFi access points and cell towers and their signal strengths. If there is GPS ...


4

So your GPS coordinates are far apart? If they are close - eg. short segments along a road, then "straight line" is good enough. There is an open source extension for PostGIS that can calculate road distances. It is called pgRouting. You will also need to create a road database - typically OpenStreetMaps is used.


4

You need to pass the map as a parameter to your control. Map is undefined on the way you pass it. Change the last line of your code from this map.addControl(new app.Geolocate()); to this map.addControl(new app.Geolocate('',map)); check your fiddle with this tiny change here


4

The process you are attempting is called Geographic Information Retrieval (GIR), there are whole academic conferences about it. When I worked on this (~10 yrs ago) I collected some literature that may help you get started, for example papers I tagged GIR. Once you have extracted place names (toponyms) you need to disambiguate the place, and finally geocode ...


4

The solution by @TJ Rockfeller leads to manually move the points. Instead, if you need to move the point to a specific location (i.e. using specific coordinates), you may use the Numerical Vertex Edit plugin. It's very simple to use: Right click on the layer and select Toggle Editing; Select the point you need to move; Enter the new coordinates using the ...


4

It turns out that the cdn's for the Leaflet.locate given in the https://github.com/domoritz/leaflet-locatecontrol example are incorrect. I replaced them using cdn's from https://www.jsdelivr.com/projects/leaflet.locatecontrol. I also included the mapbox cdn's. In retrospect, it would probably be best to simply download the files into your css and js folders.


4

Leaflet relies on the browser's Geolocation.watchPosition and other bits of the Geolocation API. The code for L.Map.locate does not add any extra timeouts or delays. Let me quote from the specs of the Geolocation API, emphasis mine: In step 5.2.2 of the watch process, the successCallback is only invoked when a new position is obtained and this position ...


4

Google Earth not accurate enough (you are looking for cm accuracy here) especially if you are taking your points from the rubber-sheeted aerial images. When you combine this with the inaccuracy of your phone's GPS (+/- a few meters - the US government quotes about 5m - see here) you will get a wiggly fence line using the method you suggest (or all your ...


4

I have looked at tweets to some extent. But not in your area. But I suspect this is down to two types of tweets. Actual tweets that fall into two categories. The correct geolocation with specific precision (see the tweets in the urban area), and town level geolocation (see the stacks in the urban area). Then you have automated tweets. These are the ones ...


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