Die deutsche Google Maps Community.
Die Möglichkeiten sind da!
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
Übersicht ::
Google Maps API ::
Google Maps API ::
drawCircle bei zoom entgegengesetzt vergrößern oder verkleinern
moderiert von:
Steffen
drawCircle bei zoom entgegengesetzt vergrößern oder verkleinern |
||
|---|---|---|
| michabln | verfasst: 27.04.2008, 20:34 | |
Neu hier
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 |
|
|
|
|
|
| TeddyDesTodes | verfasst: 27.04.2008, 20:41 | |
Neu hier
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 |
|
|
|
|
|
| michabln | verfasst: 28.04.2008, 06:09 | |
Neu hier
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 |
|
|
|
|
|
| TeddyDesTodes | verfasst: 28.04.2008, 13:27 | |
Neu hier
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 |
|
|
|
|
|
| michabln | verfasst: 29.04.2008, 07:06 | |
Neu hier
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. |
|
|
|
|
|
| TeddyDesTodes | verfasst: 29.04.2008, 11:43 | |
Neu hier
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] |
|
|
|
|
|
| michabln | verfasst: 29.04.2008, 12:36 | |
Neu hier
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? |
|
|
|
|
|
User online:
Diese Angaben basieren auf den Useraktivitäten der letzten 10 Minuten