Thanks marcelo As mentioned in the posting its behind a firewall, so can't post a link which I agree is much easier to follow.
Anyway I have rethought the issue solved the problem by using a double click instead. Neater and easy to use. On Feb 22, 9:45 am, Marcelo <[email protected]> wrote: > 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/th...http://groups.google.com/group/Google-Maps-API/web/why-including-a-li... > > 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.
