im trying to make an app on android just a typical map that utilizes a smartphones GPS and i am planning on using Dijkstra’s shortest path algorithm.
What i plan to do is make a top view map of an island and gather latitude and longitude data for each intersection on the islands road from my gps, join the image (the map of the island i made) with the latitude and longitude data then implement Dijkstra’s shortest path algorithm.
any suggestions?
how will i go about this?
first
Activity file
GoogleMap googleMap;
googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
Follow the Getting Started
This guide is a quick start to adding a map to an Android app. Android Studio is the recommended development environment for building an app with the Google Maps Android API.
Step 1. Download Android Studio
Step 2. Install the Google Play services SDK
Step 3. Create a Google Maps project
Step 4. Get a Google Maps API key
Step 5. Hello Map! Take a look at the code
Step 6. Connect an Android device
Step 7. Build and run your app
Enabling GPS:
#Override
protected void onStart() {
super.onStart(); // Always call the superclass method first
// The activity is either being restarted or started for the first time
// so this is where we should make sure that GPS is enabled
LocationManager locationManager =
(LocationManager) getSystemService(Context.LOCATION_SERVICE);
boolean gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
if (!gpsEnabled) {
// Create a dialog here that requests the user to enable GPS, and use an intent
// with the android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS action
// to take the user to the Settings screen to enable GPS when they click "OK"
}
}
Hope this helps!
Related
I developed an application using android studio. I used Google Maps in my application. When opening Google maps first I want the last location of the user using the code block below.
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,locationListener);
Location lastlocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
But user last location return null. How can I fix that problem?
i'm setting a new project in flutter with flutter_google_maps for tracking user location on map it's a basic project
But when i am moving devices or ride then my Location are point on map but not right place
Ex.
I am walk on street road then google map navigation show exact my
location But my project not show exact location
Code are normal just use Flutter Location Plugin
And Track Location Using this code
location.onLocationChanged().listen((LocationData currentLocation) {
print(currentLocation.latitude);
print(currentLocation.longitude);
});
And set to marker target value describe in google_maps_flutter
i google lot of things but no answer found who resolve my problem
Where I'm wrong ya any other methods use by other location tracking app
Thanks
i working with google map directions api in android application.when i send two Location to google api it return route between both but LatLng is changing and no one send me.Is there a way to do this?
You have to implement LocationListener to locate user's device GeoCode.
That will take some effort. You could refer the demo I made here mClima
The listener for location change was implemented in MainActivity. Remember to declare permision in AndroidManifest
I am working on the developement of an android app. I need to locate the user without displaying the map (only the name of his location ei New york, USA)
I work using Eclipse SDK.
Is there a way to do it?
Thanks :)
Ps: I am new to android
Android API Maps
In the API documentation it shows you step by step how to get started on this
type of application.
How to get started
One thing you have to remember is that the user must enable
the GPS to get current location
Since you explained in comments that you already know how to get the Location, and thus the latitude and longitude, you can resolve it to an address using Android's GeoCoder class, with its getFromLocation(double,double,int) method.
I want to show local points of interest to the users.
Since this isn't the main goal of my app, I wish to find a rather simple solution,like sending the user to Google Places or any other location based app.
Is there a way of doing that?
If the answer is no, how could I do that? Maybe using some API?
Thanks
You can use the android location and maps api documented here. If not, you can always call the Maps intent but you have to make sure google maps is installed before using it. Here is an example using the Location api from the android dev page linked here:
// Acquire a reference to the system Location Manager
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
// Define a listener that responds to location updates
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
// Called when a new location is found by the network location provider.
makeUseOfNewLocation(location);
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
// Register the listener with the Location Manager to receive location updates
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
Now register your application with google API here. Once you get your API key you can use an http request to https://maps.googleapis.com/maps/api/place/search/json?location=&radius=&types=&name=&sensor=&key=YOUR_API_KEY.
You can find the definition of each parameter from the google maps api site here but this is a little list:
location (required) — The latitude/longitude around which to retrieve Place information. This must be provided as a google.maps.LatLng object.
radius (required) — The distance (in meters) within which to return Place results. The recommended best practice is to set radius based on the accuracy of the location signal as given by the location sensor. Note that setting a radius biases results to the indicated area, but may not fully restrict results to the specified area.
types (optional) — Restricts the results to Places matching at least one of the specified types. Types should be separated with a pipe symbol (type1|type2|etc). See the list of supported types.
language (optional) — The language code, indicating in which language the results should be returned, if possible. See the list of supported languages and their codes. Note that we often update supported languages so this list may not be exhaustive.
name (optional) — A term to be matched against the names of Places. Results will be restricted to those containing the passed name value. When a name is included, the area being searched may be broadened, to ensure a suitable number of results.
sensor (required) — Indicates whether or not the Place request came from a device using a location sensor (e.g. a GPS) to determine the location sent in this request. This value must be either true or false.
key (required) — Your application's API key. This key identifies your application for purposes of quota management and so that Places added from your application are made immediately available to your app. Visit the APIs Console to create an API Project and obtain your key.
Here's a quick HTTP request example in android:
HttpGet myGet = new HttpGet("https://maps.googleapis.com/maps/api/place/search/json?location=&radius=&types=&name=&sensor=&key=YOUR_API_KEY");
Once you got your return result, you can parse the response using any json library such as google-gson from here.
Ryan
Your question is not clear but from your question i am able to know that you want to display location of user interest correct me if i m wrong.
if you want to same then
1) you need latitude and longitude of that points
for that you can use any API of you can get those from your webservice
2) after getting list of latitude and longitude you can display those on map by using Itemized Overlay