On Feb 22, 10:29 am, kathb4 <[email protected]> wrote:

> Still struggling with this one.
> Any ideas?

Yes, please read and follow the group's posting guidelines:
http://groups.google.com/group/google-maps-js-api-v3/browse_thread/thread/2b3f101fd509919e#
http://groups.google.com/group/Google-Maps-API/web/why-including-a-link-is-critical

I ignore code dumps.

--
Marcelo - http://maps.forum.nu
--








>
> Thanks!
>
> On Feb 19, 4:19 pm, kathb4 <[email protected]> wrote:
>
>
>
> > 1. I am using google map v3
> > 2. I can't give a link to the code because it is currently behind a
> > firewall
> > 3. I have been googling all week and read/copied any code I could find
> > 4. I know it is done via pushing my markers to a markers[]array and
> > somehow removing it via markers[i].setmap(null)
> > but I still can't get it.
>
> > Scenario
> > User is presented with a set of radio buttons. Using Jquery, when they
> > select a radio button and conditional/different options appear, eg if
> > they select radio button 'postcode' , and a postcode input text
> > appears. They enter a postcode, and a map appears centered on the
> > returned lat/lng.  They click on map (any number of times) and a
> > marker appears for each click.  They click on any marker, and an
> > infowindow with a form in it appears, which they fill out and hit
> > save.
>
> > That much I have working.
>
> > But I also want a link in the infowindow to say 'remove marker' in
> > case they have clicked on the map and placed a marker they don't want.
>
> > Any other comments also welcome
>
> > code I have
> > [code]
> > // JQUERY functions
> > $(document).ready(function() {
> >         .. bunch of stuff to make divs show or not show...
> >         // used for postcode or town look up
> > $(".viewMap").click(function(e) {
> >         var address =$(this).prev().find('input').val();
> >         getLatLngFromPostcode(address, load);
> >         });
>
> > });
>
> > var map;
> > var markers = [];
> > var infoWindow;
> > var countMarkers = 0;
> > var markerId;
>
> > // usedhttp://code.google.com/apis/maps/articles/phpsqlsearch_v3.html
> > alot here
>
> >         function load(lat, lng) {
> >                 var surveyOptions = {
> >                         center: new google.maps.LatLng(lat,lng),
> >                         zoom: 18,
> >                         mapTypeControl: true,
> >                         mapTypeId: google.maps.MapTypeId.SATELLITE,
> >                         navigationControlOptions: {
> >                                 style: 
> > google.maps.NavigationControlStyle.ZOOM_PAN
> >                         }
> >                 };
>
> >                 map = new google.maps.Map(document.getElementById("map"),
> > surveyOptions);
>
> >                 infoWindow = new google.maps.InfoWindow();
>
> >                 google.maps.event.addListener(map, 'click', function(event) 
> > {
> >                         closeInfoWindow();
> >                         createMarker(event.latLng);
> >                 });
> >         }
>
> >         function createMarker(location) {
> >                 countMarkers++;
> >                 marker = new google.maps.Marker({
> >                         position: location,
> >                         map: map,
> >                         draggable: true,
> >                         icon: 'icon.png'
> >                 });
> >   // trying to gqt a unique id for the marker so we can delete a
> > specific one
> >                 marker.markerId = countMarkers;
>
> >                 // make an array of all the markers so we can count
> >                 markers.push(marker);
>
> >                 markerId = marker.markerId;
>
> >                 map.setCenter(location);
>
> >                 markerLat = location.lat();
> >                 markerLng = location.lng();
>
> >                 google.maps.event.addListener(marker, 'click',
> > handleMarkerClick(markers, marker, markerLat, markerLng, markerId));
> >         }
>
> >         // have to have a function to map the number of the map to each
> > instantiation
> >         function handleMarkerClick(markers, marker, markerLat, markerLng,
> > markerId) {
> >                 return function() {
> >                         var html = "<form action='#' 
> > onsubmit='saveData(this); return
> > false'><table>" +
> >                         "<tr><td>Test</td> <td><input type='hidden'
> > id='test' value='"+markerId+"'/>"+ markerId+"</td> </tr>" +
>
> >                         "<tr><td>Height (est)</td> <td><input
> > type='text' id='height'/></td> </tr>" +
> >                         "<tr><td><input type='hidden' id='lat'
> > value='"+markerLat+"'/><input type='hidden' id='lng' value='"+markerLng
> > +"'/></td>"+
> >                         "<td><input type='submit' value='Save & 
> > Close'/></td></tr></table></
> > form>"+
> >                         "<a href=\"#\" 
> > onClick=\"removeMarker("+markerId+")\">Remove
> > marker</a>";
> >                         infoWindow.setContent(html);
> >                         infoWindow.open(map, marker);
> >                 };
> >         }
>
> >         // 
> > ref:http://www.tomanthony.co.uk/blog/geocoding-uk-postcodes-with-google-m...
> >         function getLatLngFromPostcode(postcode, callbackFunction) {
> >                 var localSearch = new GlocalSearch();
> >                 localSearch.setSearchCompleteCallback(null,
> >                 function() {
> >                         if (localSearch.results[0]) {
> >                                 var resultLat = localSearch.results[0].lat;
> >                                 var resultLng = localSearch.results[0].lng;
> >                                 callbackFunction(resultLat, resultLng);
> >                         } else {
> >                                 alert("The postcode/town you entered '" + 
> > postcode + "' was not
> > found. Please try again.");
> >                         }
> >                 });
> >                 localSearch.execute(postcode + ", uk");
> >         }
>
> >         function saveData(form) {
> >                 var test= escape(document.getElementById("test").value);
> >                 var url = "phpsqlinfo_addrow.php?test=" + test +
> >                         "&lat=" + lat +
> >                         "&lng=" + lng;
>
> >                 downloadUrl(url, function(data) {
> >                         var results = data;
> >                         closeInfoWindow();
> >         // debugging
> >                         document.getElementById("message").innerHTML = 
> > results;
> >                 });
> >         }
>
> >         function downloadUrl(url, callback) {
> >                 var request = window.ActiveXObject ?
> >                         new ActiveXObject('Microsoft.XMLHTTP') :
> >                         new XMLHttpRequest;
>
> >                 request.onreadystatechange = function() {
> >                         if (request.readyState == 4) {
> >                                 request.onreadystatechange = doNothing;
> >                                 callback(request.responseText, 
> > request.status);
> >                         }
> >                 };
> >                 request.open('GET', url, true);
> >                 request.send(null);
> >         }
>
> >         function doNothing() {
> >         }
>
> >         function closeInfoWindow() {
> >                 infoWindow.close();
> >         }
>
> >         function removeMarker(markerId) {
> > // this says      markers[markerId] = undefined
> >              markers[markerId].setMap(null);
> >         // this show the marker id fine
> >         //alert(markerId);
> >         }
>
> > </code>
>
> > thanks
>
> > I will post clean working code when it works for others to use.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Maps JavaScript API v3" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-maps-js-api-v3?hl=en.

Reply via email to