How can I get semantic token range at certain position?
Related
I am making a location based tracking program where user can set his/her origin and destination point and then a polyline will be generated based on two coordinates. Now I want to know if user's current location is near or within polylines.
List<LatLng> coordinates is the coordinates that are used to draw polylines on Map.
Stream<LatLng> currentLocation is the stream that is listening to user's current location.
Never mind 😅
I found out there is a method on native google map PolyUtil isLocationOnPath() which return true if given point is within or near given List of coordinates.
I made a flutter plugin for that google_map_polyutil
First determine the value of "near" and you sould try to add or subtract this value to lat and long of the user and see if the new location has cross the line. (Signe of the addition or subtract has change).
Say I keep getting a set of Geo coordinates from a moving vehicle.
There is a predefined route that the vehicle needs to follow from Point A to Point B.
The route will be defined by giving the user the option to select points A and B and also selecting the WayPoints in between and letting the Google API select the best route.
As the vehicle moves I need to check whether the vehicle has deviated more than 50 m from the predefined route.
My solution (not fully tested)
When the user has selected the start and the end points and the waypoints in between, I can make a call to the Google Directions API which would give me all the points on the road in between
(The polyline property inside the steps gives you the exact points on the road which the UI uses to draw the lines. You can call the following URL to see the polyline response
https://maps.googleapis.com/maps/api/directions/json?origin=Boston,MA&destination=Concord,MA&waypoints=Charlestown,MA|Lexington,MA
)
and store these points in some database (Mongo) with a route id.
When I get the geo cordinates from the vehicle I can make a query to Mongo asking for all those points with the route id and whose distance is less than 50m from the vehicle coordinates. And if there are non then the vehicle has deviated from the route.
Is there a better way of doing this?
How to get the coordinates of the polygon area:
http://wikimapia.org/#lang=en&lat=49.964473&lon=36.262436&z=12&m=b&show=/20421408/Chervonozavodsky-district
You need to use the place.Search function of The Wikimapia API and enter the latitude, longitude and the name of the place as parameters.
The API returns a lot of data separated in blocks. The one you are interested in is the geometry.
You can make tests with the Wikimapia API to filter the results to your needs. With the lat lon parameters and the district name you provided I was able to get the area you needed as the first result.
The places[0].polygon is what you need. A JSON array of coordinates.
Here´s the url I used to get the results:
http://api.wikimapia.org/?key=example&function=place.search&q=Chervonozavodsky-district&lat=49.964473&lon=36.262436&format=json&pack=&language=en&data_blocks=geometry%2C&page=1&count=1
Note that in this example i made the request for a JSON result. But you can also ask for a XML if you prefer.
Hope it helps!
how to get multiple distance route results for single destination from google api call?
starting point and ending point i have to find the distance between them. i have to display the shortest and middle and longest distance for only one destination(ending point).
it has any API provided to me.
Please help me
Advance Thanks.
You have to change the current location latitude,longitude and destination latitude,longitude in below url. You will get the result.
http://maps.googleapis.com/maps/api/directions/json?origin=17.4444,78.4666&destination=17.4393,78.4056&units=imperial&alternatives=true&sensor=false
I am grabbing maps from bing using their API:
http://msdn.microsoft.com/en-us/library/ff701724.aspx
The largest tile they can return is 900x834. I need at least double that. Is there an easy way to figure out what the adjacent tiles are for any given zoom level and long/lat for a given resolution.
In other words, given a long,lat, zoom level, and resolution what would be the long lat for the 8 surrounding tiles in the same zoom level and resolution. Or is there a better way to get a large map?
Here's my GET request:
http://dev.virtualearth.net/REST/v1/Imagery/Map/Aerial/#{lat},#{long}/#{rand(19)}?mapSize=900,834&format=png&key=MYKEY
It is not possible to do this without breaking the rules set in the Terms of Use, especially the automation regarding your imagery retrieval (or composition).
See: http://www.microsoft.com/maps/product/terms.html
If you want to do this anyway with maybe a dedicated agreement to proceed (if possible), I would recommend to use mapArea parameters rather than using the lat long of the center, see:
http://msdn.microsoft.com/en-us/library/ff701724.aspx
See an example of mapArea imagery retrieval:
http://dev.virtualearth.net/REST/V1/Imagery/Map/road?mapArea=37.317227,-122.318439,37.939081,-122.194565&ms=500,600&pp=37.869505,-122.2705;35;BK&pp=37.428175,-122.169680;;ST&ml=TrafficFlow&key=BingMapsKey
If you want to access tile url in a supported way, you can use the same imagery service to retrieve metadata that will contain tile url. Tile are based on a quadkey model so you will be able to load the tile nearby your current view.