PlanetGMaps Forum

planetGMaps

Die deutsche Google Maps Community.
Die Möglichkeiten sind da!

Forum

Forum Suche | Forum Übersicht | Anmerkung: registrierte Benutzer können sich über neue Einträge benachrichtigen lassen | Anmerkung: registrierte Benutzer können sich über neue Einträge benachrichtigen lassen


zum vorhergehenden Thema Thema drucken zum nächsten Thema

Übersicht ::  Google Maps API ::  Google Maps API ::  drawCircle bei zoom entgegengesetzt vergrößern oder verkleinern
moderiert von: Steffen

Zum aktuellsten Beitrag 

drawCircle bei zoom entgegengesetzt vergrößern oder verkleinern

michabln verfasst: 27.04.2008, 20:34
Neu hier
Neu hier
michabln

registriert: Nov. 2007
Beiträge: 6

Status: offline
letzter Besuch: 29.04.08
hallo zusammen,

ich habe auf einer karte ca. 10 kreise mit unterscheidlichen farben über

var point = new GLatLng("47.67985","9.197535");
var marker = drawCircle(point,0.28,"#FF9933",1,"","#FF9933");

erstellt. wenn ich nun in die karte zoom, dann werden diese kreise größer. wenn ich heraus zoome, dann werden die kreise kleiner. ich möchte es aber genau anders herum haben. wenn ich herein zoome, dann sollen die kreise kleiner werden und beim heraus zoomen eben größer.

kann mir jemand einen tipp geben, wie man das machen kann bzw. wo ich dazu beispiele finden könnten.

danke viele grüße micha
Nach oben  Profil PM senden
 
TeddyDesTodes verfasst: 27.04.2008, 20:41
Neu hier
Neu hier
TeddyDesTodes

registriert: Mär. 2008
Beiträge: 5

Status: offline
letzter Besuch: 29.04.08
naja auf die schnelle würd ich sagen das ein icon besser währ =) also wenn die kreise immer die selbe größe haben sollen halt ne semi-transparente png benutzen.
ein anderer ansatz währ die kreise dem zoom-level anpassen als jedesmal neu berechnen zu lassen
Nach oben  Profil PM senden
 
michabln verfasst: 28.04.2008, 06:09
Neu hier
Neu hier
michabln

registriert: Nov. 2007
Beiträge: 6

Status: offline
letzter Besuch: 29.04.08
Warum wäre denn ein icon besser? dein letzter vorschlag war meine frage. :)

die kreise auf der karte haben außerdem unterschiedliche größen.

ich möchte eine flächenbeteiligung von unterschiedlichen personen umsetzen. d.h. Personen x, y, z haben bestimmte prozentuale beteiligungen an einem produkt z.b. Wenn X eine 80%ige beteiligung hat, Y 25% und z 45%, dann sind die kreise auch entsprechend unterschiedlich groß auf der karte. da die kreise bzw. die darstellung beim heran zomen nicht mehr zu erkennen sind, wollte ich dies entsprechend dem zoomlevel anpassen und beim haran zommen verkleinen und raus zoomen vergrößern.

ich weiß leider nur nicht wie ich da anfangen muss, die kreisgrößen dynamisch zu ändern.

gern mache ich daraus auch einen job, wenn jemand eine tolle idee hat.

viele grüße micha



editiert von: michabln, 27.04.2008, 17:10 Uhr
Nach oben  Profil PM senden
 
TeddyDesTodes verfasst: 28.04.2008, 13:27
Neu hier
Neu hier
TeddyDesTodes

registriert: Mär. 2008
Beiträge: 5

Status: offline
letzter Besuch: 29.04.08
also zu nem brauchbaren lösungsansatz:
du kannst als aller erstes deinem map-objekt ne listener verpassen "zoomend" z.B.
dann hast du 2 möglichkeiten entweder du nimmst den zoomlevel als "multiplikator" für die kreisgrößen oder du nimmt sie koordinaten vom kartenrand. vll schaff ich es heute noch was zu basteln, hilfreich währe ne skizze oder nen screenshot wie du dir das vorstellst
Nach oben  Profil PM senden
 
michabln verfasst: 29.04.2008, 07:06
Neu hier
Neu hier
michabln

registriert: Nov. 2007
Beiträge: 6

Status: offline
letzter Besuch: 29.04.08
hab dir gerade eine PM geschickt wegen email, damit ich dir die grafik zuschicken kann.
den zommlevel wollt eich als multiplikator nehmen, wobei der multiplikator für die größe wohl noch etwas modifizeirt/berechnet werden muss, da sonst die grafiken wiede rzu groß werden. diese berechnung ist aber denke ich nicht so schwer, wenn man weiss, wie man die größe der kreise verändern kann wie oben beschrieben. das mit den koordinaten vom kartenrad verstehe ich leider nicht ganz. wie meinst du das?

ich glaube das problem ist, ist weiß nicht wie ich in JS die marker durchlaufe und entsprechend die größe ändere bzw. wie ich anfangen muss.
Nach oben  Profil PM senden
 
TeddyDesTodes verfasst: 29.04.2008, 11:43
Neu hier
Neu hier
TeddyDesTodes

registriert: Mär. 2008
Beiträge: 5

Status: offline
letzter Besuch: 29.04.08
du hast mir ne PM geschickt?! hier is nix angekommen :(

mhm mir is nich bekannt das man polylines bzw polygone verändern kann ( ich lasse mich gerne eines besseren belehren )

also das mit dem abarbeiten würde dann so aussehen
[code]
var kreise = null;
kreise.kreisid.prozent = 80;
kreise.kreisid.farbe = '#000000';
kreise.kreisid2.prozent = 70;
kreise.kreisid2.farbe = '#0099FF';

for(var i in kreise){
Map2.removeOverlay(kreise[i].poly); //sollte man beim ersten durchlauf evtl abfangen
kreise[i].poly = ?????? ;// hier kommt die berechnung des kreises rein
Map2.addOverlay(kreise[i].poly);
}
[/code]
Nach oben  Profil PM senden
 
michabln verfasst: 29.04.2008, 12:36
Neu hier
Neu hier
michabln

registriert: Nov. 2007
Beiträge: 6

Status: offline
letzter Besuch: 29.04.08
ich hoffe die P ist jetzt angekommen. damit ich dir eine beispielgrafik schicken kann, benötige ich deine email. dies möchte ich hier ungern veröffentlichen.

Also ich habe folgenden Code, der mit der Klasse gmapper erzeugt wird.

=========================

//<![CDATA[

var map = new GMap2(document.getElementById("gmapper_map"));
var geocoder = new GClientGeocoder();
map.enableScrollWheelZoom();

var mapdiv = document.getElementById("gmapper_map");
GEvent.addDomListener(mapdiv, "DOMMouseScroll", wheelevent);

mapdiv.onmousewheel = wheelevent;
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());

var mycontrol = new GMapTypeControl();
map.addControl(mycontrol);

map.setCenter(new GLatLng( 53.75627,14.053014),6);
new GKeyboardHandler(map);

map.enableDoubleClickZoom();
map.enableContinuousZoom();
map.setMapType(G_NORMAL_MAP);

var interval = setInterval("tilechk()",500);
//]]>



//<![CDATA[
map.addControl(new GScaleControl());
var bounds = new GLatLngBounds();
var bounds = new GLatLngBounds();
var image = new Array("http://www.muster.de/cms/...qb_google_map_icon.png",32,32);
var point = new GLatLng("52.631205","13.479624");
var marker = createOtherMarker(point, '<a href="http://www.muster.de/2195/info.html" title="Präsentation öffnen" target="_blank">Muster 1',image);
map.addOverlay(marker);

bounds.extend(point)
var point = new GLatLng("52.631205","13.479624");
var marker = drawCircle(point,0.86,"#FF0000",1,"","#FF0000");

var image = new Array("http://www.muster.de/cms/...qb_google_map_icon.png",32,32);
var point = new GLatLng("52.535101","13.424096");
var marker = createOtherMarker(point, '<a href="http://www.muster.de/2036/info.html" title="Präsentation öffnen" target="_blank">Muster 2',image);
map.addOverlay(marker);

bounds.extend(point)
var point = new GLatLng("52.535101","13.424096");
var marker = drawCircle(point,0.95,"#FFFF00",1,"","#FFFF00");

var image = new Array("http://www.muster.de/cms/...qb_google_map_icon.png",32,32);
var point = new GLatLng("52.461059","13.405275");
var marker = createOtherMarker(point, '<a href="http://www.muster.de/2034/info.html" title="Präsentation öffnen" target="_blank">Muster 3',image);
map.addOverlay(marker);

bounds.extend(point)
var point = new GLatLng("52.461059","13.405275");
var marker = drawCircle(point,2.5,"#CCFF66",1,"","#CCFF66");

var image = new Array("http://www.muster.de/cms/...qb_google_map_icon.png",32,32);
var point = new GLatLng("52.465649","13.345078");
var marker = createOtherMarker(point, '<a href="http://www.muster.de/4006/info.html" title="Präsentation öffnen" target="_blank">Muster 4',image);
map.addOverlay(marker);

bounds.extend(point)
var point = new GLatLng("52.465649","13.345078");
var marker = drawCircle(point,0.35,"#00FFFF",1,"","#00FFFF");

var image = new Array("http://www.muster.de/cms/...qb_google_map_icon.png",32,32);
var point = new GLatLng("52.406723","12.524022");
var marker = createOtherMarker(point, '<a href="http://www.muster.de/2230/info.html" title="Präsentation öffnen" target="_blank">Muster 5',image);
map.addOverlay(marker);

bounds.extend(point)
var point = new GLatLng("52.406723","12.524022");
var marker = drawCircle(point,1.4,"#0099CC",1,"","#0099CC");

var image = new Array("http://www.muster.de/cms/...qb_google_map_icon.png",32,32);
var point = new GLatLng("52.127501","11.68211");
var marker = createOtherMarker(point, '<a href="http://www.muster.de/2718/info.html" title="Präsentation öffnen" target="_blank">Muster 6',image);
map.addOverlay(marker);

bounds.extend(point)
var point = new GLatLng("52.127501","11.68211");
var marker = drawCircle(point,0.1,"#9999CC",1,"","#9999CC");

var image = new Array("http://www.muster.de/cms/...qb_google_map_icon.png",32,32);
var point = new GLatLng("51.499443","11.968436");
var marker = createOtherMarker(point, '<a href="http://www.muster.de/2113/info.html" title="Präsentation öffnen" target="_blank">Muster 7',image);
map.addOverlay(marker);

bounds.extend(point)
var point = new GLatLng("51.499443","11.968436");
var marker = drawCircle(point,0.05,"#FF00FF",1,"","#FF00FF");

var image = new Array("http://www.muster.de/cms/...qb_google_map_icon.png",32,32);
var point = new GLatLng("51.83639","10.775408");
var marker = createOtherMarker(point, '<a href="http://www.muster.de/2715/info.html" title="Präsentation öffnen" target="_blank">Muster 8',image);
map.addOverlay(marker);

bounds.extend(point)
var point = new GLatLng("51.83639","10.775408");
var marker = drawCircle(point,2.05,"#FF9933",1,"","#FF9933");

var image = new Array("http://www.muster.de/cms/...qb_google_map_icon.png",32,32);
var point = new GLatLng("52.447511","9.745786");
var marker = createOtherMarker(point, '<a href="http://www.muster.de/2515/info.html" title="Präsentation öffnen" target="_blank">Muster 9',image);
map.addOverlay(marker);

bounds.extend(point)
var point = new GLatLng("52.447511","9.745786");
var marker = drawCircle(point,0.54,"#003399",1,"","#003399");

var image = new Array("http://www.muster.de/cms/...qb_google_map_icon.png",32,32);
var point = new GLatLng("51.635892","9.645006");
var marker = createOtherMarker(point, '<a href="http://www.muster.de/2677/info.html" title="Präsentation öffnen" target="_blank">Muster 10',image);
map.addOverlay(marker);

bounds.extend(point)
var point = new GLatLng("51.635892","9.645006");
var marker = drawCircle(point,0,"#009900",1,"","#009900");

map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
//]]>

============================

Wo muesste ich deinen vorschlag jetzt einbauen?


Nach oben  Profil PM senden
 


User online:

Diese Angaben basieren auf den Useraktivitäten der letzten 10 Minuten

^ Top | © 2006 planet-gmaps.de | css | xhtml