I am making an app which has map v2 and I am displaying multiple pins successfully. I have followed an tutorial which was just displaying the pin/markers on map v2.
Through service I am getting information of Marker showing the Hotels location on map . The service is sending me the information which include Hotel Name, Location , Food , Services , rating and Latitude and longitude.so let me explain what I have done so far
what I am doing is getting each hotel specification in my asynctask and in this I am calling the following method to add marker
addMarker(Double.parseDouble(latitude), Double.parseDouble(longitude));
addMarker Function is as follows :
public void addMarker(Double Lat, Double Long) {
if (null != googleMap) {
MyMapFragment.this.googleMap.addMarker(new MarkerOptions()
.position(new LatLng(Lat, Long))
.title("You")
.draggable(true)
);
}
}
this is good as it is showing the markers successfully but I know this is not the right thing to do as I wanted each marker to show its own other specific information , so for doing this I know I have to save the information of markers but I don't know how to do it
**What I want **
What I want is to save each pin/marker record against it and on click of that marker open its information in a new window or activity so How can I achieve this , Please share me an code to get the idea or please redirect me to an easy code I do know about the demo project on github But I am not able to understand it as it is complex for me . Please help
Unfortunately you cannot add metadata to your markers. What you need to do instead - is to save markers as you add them to some data structure in form of map (
<Marker, Model>
), so you can retrieve model based on marker.Let's assume you have a
Model
class which defines Hotel information. In this case, you can have a map of objects to keep track of your markers:Now as you add markers, just put them in this map:
Now when marker is clicked, you can get hotel model based on the marker object: