Google Map V3 Script gesucht

E

Ec16

Hallo,

weiß jetzt nicht ob ich mit dem Thema hier richtig bin.
Wenn nicht, bitte verschieben.

Also nach dem ich nun nicht mehr weiter komme mit meiner bastellei und mir hier leider auch keiner helfen kann, frage ich jetzt mal euch.
Kennt jemand ein Fertiges Script mit dem man folgendes machen kann:

- Marker auf eine Google Map V3 setzen.
- Marker sollten in einer MYSQL DB gespeichert werden.
- Ein/Ausblenden bestimmter Marker Typen neben oder unter der Map möglich.
- Clustering Funktion sollte auch vorhanden sein da ich über 25.000 Marker verwenden werde.

Also eigentlich das gleiche wie bei dem was ich schon gebastelt habe nur halt zzgl. der Clusterfunktion und der Funktion das man Marker per Formular oder so eintragen kann.

Würde mich echt freuen wenn mir da jemand weiter helfen könnte.
Kann natürlich auch was kosten solange es sich für mich noch bezahlen lässt.
 
Hatte hier mal was gebastelt, lässt sich leicht verstehen und umschreiben.
PHP:
$.fn.loadMap = function() {    
	var start = new google.maps.LatLng(52.54379024803229, 13.414306640625);
	var myOptions = {
	  zoom: 10,
	  center: start,
	  mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	var map = new google.maps.Map($("#MAP").get(0), myOptions);
	var geocoder;
	$(".vcard").each(function(){
        var pic_arr = $(this).attr("id").split('|');
		var icn = BASE_URI + "pic/icon/" + pic_arr[1];
		var img = BASE_URI + "pic/mini/" + pic_arr[0];
        var googletext = $('.googletext').html();
             
		var url = "url(" + img + ")";
		$(this).css("background-image", url);		
		var icon = new google.maps.MarkerImage(icn, new google.maps.Size(20, 20), new google.maps.Point(0,0), new google.maps.Point(0, 0));
		var shadow = new google.maps.MarkerImage(BASE_URI + "img/marker.png", new google.maps.Size(30, 35), new google.maps.Point(0,0), new google.maps.Point(5, 5));
		                
                geocoder = new google.maps.Geocoder();
                var address = $(this).find('span.street-address').html() + ' ' + $(this).find('span.postal-code').html() + ' ' + $(this).find('span.locality').html() + ' ' + $(this).find('span.country-name').html();
                geocoder.geocode( { 'address': address}, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        map.setCenter(results[0].geometry.location);
                        var marker = new google.maps.Marker({map: map,position: results[0].geometry.location,shadow: shadow,icon: icon});
                        var info = new google.maps.InfoWindow(
                        {
                           content : googletext
                        });
                        google.maps.event.addListener(marker, 'click', function()
                        {
                            info.open(map, marker);
                        });
                    } else {
                        alert("Geocode was not successful for the following reason: " + status);
                    }
                });
	});
	$(".vcard").click(function(){				
                geocoder = new google.maps.Geocoder();
                var address = $(this).find('span.street-address').html() + ' ' + $(this).find('span.postal-code').html() + ' ' + $(this).find('span.locality').html() + ' ' + $(this).find('span.country-name').html();
                geocoder.geocode( { 'address': address}, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        map.setCenter(results[0].geometry.location);
                        map.setZoom(15);
                    } else {
                        alert("Geocode was not successful for the following reason: " + status);
                    }
                });                
        });
}
 
Und wo ist jetzt das Problem?

Array anlegen:
PHP:
var markers = [];
In der each Schleife ein :
PHP:
markers.push(marker);

und dann:

PHP:
var markerCluster = new MarkerClusterer(map, markers);

Die Marker an eine Datenbank binden, sollte mit Ajax auch kein Problem darstellen.

PHP:
$(".vcard").each(function(){}

wäre in deinen fall zB. ein Json Array aus der Ajaxabfrage, oder willst du die Positionen in der Datenbank speichern?
 
Zuletzt bearbeitet von einem Moderator:
Welche Cluster Funktion ist die beste für Google Map V3?

Die eigene...:)

Gibt es eine Clustering Funktion die schon vor dem auslesen der Daten aus der DB wirkt?

Nein, da der Clusterer erst beim Client erstellt wird.

Grund ist, ich habe eine DB mit knapp 60000 Marker (Tendenz steigend) und da dauert es schon mal einige Minuten bis diese alle geladen sind.
- Welche Cluster Funktion arbeitet gut mit der DB zusammen? Die die ich gefunden habe beziehen sich immer auf .kml oder .kmz Dateien. Ich nutze aber eine DB und die Daten werden ausgelesen und dann wird eine .xml Datei erstellt.

Warum aus der Datenbank lesen und dann eine XML erstellen?

Aus der Datenbank lesen und die Querys optimieren sowie mit Indexes arbeiten.
Ein JSON Array als Ausgabe macht das wunderbar.
 
Zurück