Zum Inhalt springen

Link mit argumenten auslesen und damit eine Map öffnen...


thunderstorm

Empfohlene Beiträge

Hi,

Ich habe folgendes: Ich habe eine Page in der Koordinaten (northing und easting, sowie zoomfaktor, einen Titel und ein Text Argument....

northing / easting: ost und nord wert (6stellig)

zoomfaktor: wie nahe die Startgrösse der Karte gezeigt wird.

titel: Titel für die Beschreibung des ViewPoints

text: Text für die Beschreibung des ViewPoints

Das alles soll ich per Text-Link in ein leeres PopUp Fenster (popup.html) übergeben.

Dort wird dann mittels javascript die Map geöffnet usw.

Ich habe also im HEAD der start.html Datei bis jetzt folgenden Script-Code:

...

<script type="text/javascript">

function openPopup(url, northing, easting, zoomLevel, title, htmlText) {

// *** PopUp oeffnen...

newwindow=window.open(url,'popup','height=800,width=1100,left=100,top=50,resizable=yes,location=yes,status=no,scrolling=no');

newwindow.focus();

}

</script>...

UND IM BODY Bereich:...

...

<a href="javascript:openPopup('popup.html', 600000, 174015, 3, "TestTitel","Text Text ist ein Fuelltext...");">Ortschafts-Namen</a>...

Meine Fragen:

Ich muss diese Werte (Klammer im Link Tag) in das neue Fenster übergeben UND...

ich muss diese dann in das Javascript einfliessen lassen damit ich die Map öffnen kann.

Wer kann mir helfen damit ich diese Werte in das PopuP kriege?

Das Script im anderen fenster kan ich bei bedarf liefern aber damit man die MAP sehen kann, muss diese registriert sein, deshalb würde das wahrscheinlich nicht viel bringen.

THANX im Voraus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich würde bei Klick auf den Link eine Funktion aufrufen und die Parameter mit übergeben.

In dieser Funktion erstellst/öffnest du dann das Popupfenster mit einem Div-Element oder so und in dieser Funktion forderst du auch mit den übergebenen Parametern die Karte an.

Nach dem Anfordern musst du dann die Karte nur noch dem Div-Element im Popup zuweisen.

In etwa so:


// Ist dann kein wirklicher Link mehr

<DIV onclick="meineFunktion(600000, 174015, 3, "TestTitel","Text Text ist ein Fuelltext")">Ortschafts-Namen</DIV>


function meineFunktion(northing, easting, zoomLevel, title, htmlText) {

 // In der Funktion das Popup öffnen

 newwindow=window.open(popup.html,'popup','height=800,widt   h=1100,left=100,top=50,resizable=yes,location=yes, status=no,scrolling=no');

newwindow.focus();



To-Do: In der Funktion auch die Karte anfordern


// Karte dem Popup Div Element zuweisen (je nach Format)

document.MAPDIV.value = Karte

oder document.MAPDIV.src = Karte.img 

}


MAPDIV ist dann das DIV-Element im Popup.html 


<DIV id="MAPDIV"></DIV>

oder falls die Karte ein IMG ist: 

<img id="MAPDIV" src="image.jpg" />

Ich bin mir nicht sicher, aber ich glaube, es kann nur ein serverseitiges Script Parameter entgegen nehmen, JavaScript ist aber clientseitig.

Du kannst dir dazu ja auch mal diesen Link anschauen: http://aktuell.de.selfhtml.org/artikel/javascript/wertuebergabe/

Bearbeitet von Sassy
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Sassy

Danke Dir für die Ausführliche Antwort. Ich bin gerad dabei ins Weekend zu gehen, aber werde das gleich am Montagmorgen versuchen zu realisieren.

Ich werde dann noch Feedback geben sobald ich es habe....oder wenn ich nicht klar kommen sollte :-)

Dir (und allen anderen) ein schönes und sonniges Weekend

thunderstorm

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nach dem Anfordern musst du dann die Karte nur noch dem Div-Element im Popup zuweisen.

In etwa so:


// Ist dann kein wirklicher Link mehr

<DIV onclick="meineFunktion(600000, 174015, 3, "TestTitel","Text Text ist ein Fuelltext")">Ortschafts-Namen</DIV>


...
Ich bin mir nicht sicher, aber ich glaube, es kann nur ein serverseitiges Script Parameter entgegen nehmen, JavaScript ist aber clientseitig. Du kannst dir dazu ja auch mal diesen Link anschauen: Javascript-Wertübergabe zwischen HTML-Dokumenten
Hi, Ich bin grad dran das anzuschauen. Leider bin ich nicht der Javascript Guru und ich habe gewiisse Probleme. 'Leider' kannst Du die Maps eben nicht sichtbar machen weil sie auf eine Domain registriert sind. Aber den Code kannst Du sehen und evtl. den (oder eher die Fehler sehen). Damit ich das alles richtig verstehe und dass wir beide vom selben sprechen und das selbe meinen hier nochmals alles Fakten. Ausgangslage: Ich habe eine Web-Page und dort liegt ein Link der die Argumente übergibt. Das sind im Wesentlichen... Längen- und Breitengrade, Zoomlevel, und Texte (die Anzahl der Argumente ist nicht viel grösser und es sind entweder Zahlen oder Text). Diese sind für das Aufbauen einer Map. Da ist zum Beispiel irgendein Ereignis in der Schweiz und wenn man auf den Link klickt wird der besagte Kartenausschnitt in einem Popup geöffnet und an der richtigen Stelle erscheint ein Viewpoint/Marker. Wenn man den anklickt dann erscheint ein kleines Popup mit Infos zu dieser Region (. Dieser Code funktioniert auch schon ABER aben nur wenn die Koordinaten in einer Textbox in einem Form sind und ich die Argumente/werte mit der URL weitergebe. Dein Vorschlag habe ich genommen und mein Script reingenommen: der Code sieht bis jetzt in etwa so aus (längen und Breitangrade sind hier noch mit den Variablen aus dem Form versehen. Da müsste ich ggf. auch noch schauen):
<body>


[B]<DIV [/B]onclick="meineFunktion(600000, 174015, 3, "TestTitel","Text Text ist ein Fuelltext")">Ortschafts-Namen[B]</DIV>[/B]
...und gleich anschliessend...

   <script language='Javascript'>

      function meineFunktion(northing, easting, zoomLevel, title, htmlText) {

      // In der Funktion das Popup öffnen

      newwindow=window.open(popup.html,'popup','height=800,widt   h=1100,left=100,top=50,resizable=yes,location=yes, status=no,scrolling=no');

      newwindow.focus();


         /* PopUp das sich beim öffnen des Windows mit der MAp autom. auch öffnet.....

           mehr Infos zu anderen Attributen: siehe ...      

           http://www.mapfish.org/mapfishapidoc/files/mapfish_api-js.html  

        */

         // kreiert eine Map      

         geo8 = new geoadmin.API();

         geo8.createMap({

            div: 'mymap',

            easting: liste.easting,

            northing: liste.northing,

            zoom: 4,

            layers: 'ch.swisstopo.hiks-dufour,ch.swisstopo.gg25-gemeinde-flaeche.fill',

            layers_indices: '2,4',

            layers_opacity: '0.2,0.7',

            bgLayer: 'pixelmaps-gray',

            bgOpacity: 40


        });


        // Marker kreieren....    

        geo8.showMarker({

            iconPath: 'http://[Domainname]/.../images/pinNadel1.png',

            fillOpacity: 1.0,

            graphicHeight: 70,

            graphicWidth: 30,

            easting: liste.easting,

            northing: liste.northing,

            recenter: true,

            html:' Säntis 2502 m.ü.M. (Immer eine Reise wert!)<img src="[B][URL][/B]/TestBild.png" />',

            title: "Simple Popup"

        });


         /* Marker PopUp: Mit Klick auf den Marker wird das geöffnet. 

           mehr Infos zu anderen Attributen: siehe ...

           http://www.mapfish.org/mapfishapidoc/files/mapfish_api-js.html#showPopup(options)    

         */

         geo8.showPopup({

         easting: liste.easting,

         northing: liste.northing,

         width: 220,

         html: "<h1>TestTitel</h1><br>xPopup ein Fuelltext fuer Beschreibungen",

         title: "PopupTitel"

         });



   }


   </script>


</body>
Ich habe den obenstehenden Code für das Erstellen der Map über dem jeweiligen Abschnitt kommentiert. Das ist derselbe der in meinem vorherigen Beispiel funktioniert hat, stand allerding im PoUp Fenster drin mit einer Zusatzfunktion die die URL ausgelesen hat usw. (kann ich nachliefern wenn gewünscht. Wie gesagt bin ich etwas am Anschlag da ich sonst eigentlich nicht herumcoden muss und ich bin auch ein wenig verzweifelt weil ich nicht mehr weiterkomme. Ich dachte dass in etwa so etwas machen könnte wie ....
<script language='Javascript'>


   function auswertung(){


      // PopUp Datei ist

      var adr = './popup.html?';


//die folgenden ZWEI Zeilen sind wegen des bisherigen Formulares hier

      var easting    = [COLOR="Red"][Wert vom Link einfüllen][/COLOR];

      var northing   = [COLOR="Red"][Wert vom Link einfüllen][/COLOR];

      var zoomlevel = [COLOR="Red"][Wert vom Link einfüllen][/COLOR];

      var zoomLevel = [COLOR="Red"][Wert vom Link einfüllen][/COLOR];

      var title         = [COLOR="Red"][Wert vom Link einfüllen][/COLOR];

      var htmlText  = [COLOR="Red"][Wert vom Link einfüllen][/COLOR];


 [COLOR="Red"]// HIER DAS OEFFNEN DER MAP EINFUEGEN WIE OBEN im SCRIPT...usw    [/COLOR]

....


          newwindow=window.open(adr,'popup','height=800,width=1100,left=100,top=50,resizable=yes,location=yes,status=no,scrolling=no');

     newwindow.focus();



...dann das Popup-Fenster öffnen.

Aber dann stehe ich vor dem Problem wie ich den Code, der bis jetzt im PopUp liegt (der Teil der Map vom oberen Script Abschnitt) , hier in den Code reinkriege und ich dann ein "leeres "Dokument öffnen und die Sachen dort einfüllen kann.

Das sind ja dann eigentlich nur die DIV mit der Map.

Da bin ich aber wohl zu naiv, oder nicht?

Kann man bspw. alles in ein frisch erstelltest PopUp geben. Ich meine eines das in der beim Start des Scripts temporär (neu) erstellt wird und danach auch wieder verschwindet wenn man es schliesst?

Ich hoffe ich stresse nicht zu sehr, aber es wäre wirklich superlieb wenn Du (oder jemand) mir dabei helfen könnte dass ich das so machen kann.

Ich muss es danach noch in ein CMS einbinden und deshalb sollte das PoUp möglichst einfach oder noch besser ein temporäres Fenster sein (um nicht danach alle CMS relevanten Dinge auf im Window zu sehen wie Rahmen und unnötige Sachen wie Footer usw.).

Muchas Graccias schon jetzt.

thunderstorm

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eh habs jetzt nur überflogen aber sehe ich das richtig das das einzige Problem darin besteht einer HTML Seite Parameter zu übergeben?

Das passiert indem man hinter die URL ein ? anfügt und da dann die Parameter mit einem & separiert.

BSP:

http://forum.fachinformatiker.de/newreply.php?do=newreply&noquote=1&p=1275801

Die übergebenen Parameter kann man dann mit Javascript einfach auslesen und mit string operationen rausfiltern:

SELFHTML: JavaScript / Objektreferenz / location

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...