You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#26 2012-07-16 17:16:59

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Openlayers Datenbankanbindung

elpiojo_ wrote:

die abfrage mittels php script funktioniert auch einwandfrei, also könnte es ja eigentlich nur an openlayers liegen oder?

hi,

bitte immer, wenn es technisch machbar ist, ein Bild mit dem Fehler oder zumindest den Text der Fehlermeldung posten.
da gibt es soooooooo viele Möglichkeiten - und zum Rumraten hab ich echt keine Lust Zeit.

Gruss
walter

Offline

#27 2012-07-16 17:31:31

ikonor
Member
Registered: 2010-11-08
Posts: 637
Website

Re: Openlayers Datenbankanbindung

elpiojo_ wrote:

welche datei meinst du in diesem sinne?

Stimmt, in diesem Fall ist das wohl eher ein php Aufruf, der die Marker liefert und keine txt Datei.

Dennoch muss das php-Script und die .html Datei der Anwendung auf dem selben Server liegen. Wenn die .html Datei mit OpenLayers zum Beispiel zum Entwickeln aus dem lokalen Dateisystem geöffnet wird und das php-Script auf dem Server aufruft, geht das erst mal nicht.

Offline

#28 2012-07-17 16:47:27

elpiojo_
Member
Registered: 2012-07-11
Posts: 25

Re: Openlayers Datenbankanbindung

wambacher wrote:
elpiojo_ wrote:

die abfrage mittels php script funktioniert auch einwandfrei, also könnte es ja eigentlich nur an openlayers liegen oder?

ein Bild mit dem Fehler oder zumindest den Text der Fehlermeldung posten.

sorry, also ich bekomm leider nur folgende fehlermeldung:
zeile:508
zeichen:172
fehler: zugriff verweigert
code 0
url:http://www.openlayers.org/dev/OpenLayers.js

wenn ich dann auf ok klicke, wird die map zwar ausgeführt aber die marker sind nicht ersichtlich, außer einer der liegt aber im meer!

ikonor wrote:
elpiojo_ wrote:

welche datei meinst du in diesem sinne?

Dennoch muss das php-Script und die .html Datei der Anwendung auf dem selben Server liegen. Wenn die .html Datei mit OpenLayers zum Beispiel zum Entwickeln aus dem lokalen Dateisystem geöffnet wird und das php-Script auf dem Server aufruft, geht das erst mal nicht.

also das ist mir klar, ich öffne die datei auch immer über den server

Offline

#29 2012-07-17 18:52:25

elpiojo_
Member
Registered: 2012-07-11
Posts: 25

Re: Openlayers Datenbankanbindung

meine php datei sieht wie folgt aus, ich glaube langsam das es eventuell doch an ihr liegt, mir kommt vor, das die abgefragten daten nicht in das vorgeschiebne format "point\ttitle\tdescription\ticon\n" passen oder irre ich mich?

$bbx = $_GET["bbox"] ; 

$array = explode(",",$bbx);

$ble = $array[0] ;
$bbo = $array[1] ;
$bri = $array[2] ;
$bto = $array[3] ;


$betriebe = "SELECT name, homepage, telefon, breite, laenge FROM betriebe";


$result = pg_query($conn, $betriebe);
$header = "point\ttitle\tdescription\ticon\n" ;

echo $header ;

while($row = pg_fetch_object($result))
{
$daten = $row->breite.",".$row->laenge."\t".$row->name."\t"."homepage=".$row->homepage."<br>telefon=".$row->telefon."\t"."http://www.openlayers.org/dev/img/marker.png\n";
echo $daten ;
    }
pg_close($conn);
?>

Offline

#30 2012-07-17 20:02:03

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Openlayers Datenbankanbindung

elpiojo_ wrote:
ikonor wrote:
elpiojo_ wrote:

welche datei meinst du in diesem sinne?

Dennoch muss das php-Script und die .html Datei der Anwendung auf dem selben Server liegen. Wenn die .html Datei mit OpenLayers zum Beispiel zum Entwickeln aus dem lokalen Dateisystem geöffnet wird und das php-Script auf dem Server aufruft, geht das erst mal nicht.

also das ist mir klar, ich öffne die datei auch immer über den server

Das ist noch nicht ausdiskutiert wink

a) wo steht der server?
b) wo wird der web-browser aufgerufen? (rechner?)
c) mit welchem url? z.B. http://mein-server.at.provider/karten/index.html
d) wo genau steht index.html? (rechner?)
e) wo genau liegt der php-script? (rechner?)

ein einfaches "ich öffne die datei auch immer über den server" reicht hier leider nicht - also Butter bei die Fische.

Die Fehlermeldung hat absolut nichts mit Dateninhalten oder Fehlern in Scripten zu tun - soweit sind wir noch garnicht.
Diese FM ist ganz charakteristisch für eine bestimmte Situation, in der sich OL einfach "weigert", etwas zu machen ; das ist von OL aus Sicherheitsgründen so gewollt.
Und es hat nur was mit der Lage der Files zu tun.

deshalb hat sich ja ikonor bereits dazu geäußert.

gruss
walter

p.s. sag mal ein wenig zu deinem Umfeld: OS des Servers, OS des Clients, eingesetzter Browser und sowas.

Offline

#31 2012-07-18 17:12:53

elpiojo_
Member
Registered: 2012-07-11
Posts: 25

Re: Openlayers Datenbankanbindung

alles klar wink

a) ich verwende den universitätsserver
b) den webbrowser wird zu hause mittels vpn augerufen damit ich überhaupt auf den server komme
c) mit folgender url ruf ich meine karte auf http://129.27.89.66/student/master_geom/hp/map.html
d) die index html ist gleich die map.html
e) das php file liegt ebenfalls imt ordner http://129.27.89.66/student/master_geom/hp/

als browser verwende ich firefox, was meist du mit os? zum server kann ich eigentlich nicht viel sagen, da ich hier keinen zugang zu den einstellungen habe.

Offline

#32 2012-07-18 17:50:32

maxbe
Member
Registered: 2010-01-19
Posts: 3,255
Website

Re: Openlayers Datenbankanbindung

elpiojo_ wrote:

alles klar wink

a) ich verwende den universitätsserver
b) den webbrowser wird zu hause mittels vpn augerufen damit ich überhaupt auf den server komme
c) mit folgender url ruf ich meine karte auf...

Wenn Du die URL deiner PHP-Seite einfach im Browser aufrufst, siehst Du da die Liste der Betriebe?
Womöglich hat dein Browser die gleichen Probleme wie ich beim Aufruf und verwendet das Uni-VPN für manche Dinge nicht...

Offline

#33 2012-07-18 17:52:04

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Openlayers Datenbankanbindung

elpiojo_ wrote:

alles klar wink

a) ich verwende den universitätsserver
b) den webbrowser wird zu hause mittels vpn augerufen damit ich überhaupt auf den server komme
c) mit folgender url ruf ich meine karte auf http://129.27.89.66/student/master_geom/hp/map.html
d) die index html ist gleich die map.html
e) das php file liegt ebenfalls imt ordner http://129.27.89.66/student/master_geom/hp/

als browser verwende ich firefox, was meist du mit os? zum server kann ich eigentlich nicht viel sagen, da ich hier keinen zugang zu den einstellungen habe.

ok, es werde Licht.

sieht auf den 2. Blick eigentlich gut aus.
zum vpn: klappt das auch nicht, wenn du in der uni bist? sollte eigentlich egal sein, aber man weiss ja nie.

magst du map.html und das php posten? eventuell sieht man das was.
OL verlangt zwingend, dass map.html und der php-script auf dem gleichen Rechner liegen. Aber das scheint ja gegeben zu sein.

os bedeutet OperatingSystem - welche Platform Windows/Unix/mac? sowohl für server und client.
dann kann man sich leichter reindenken und die Vorschläge ("mach mal nen grep") an dein Umfeld anpassen.

zum ff: der hat prima debugging-möglichkeiten. ganz frisch aktualisiert: http://www.heise.de/newsticker/meldung/ … 42952.html

gruss
walter

gerade gesehen:

sorry, also ich bekomm leider nur folgende fehlermeldung:
zeile:508
zeichen:172
fehler: zugriff verweigert
code 0
url:http://www.openlayers.org/dev/OpenLayers.js

wo kommt das www.openlayers.org/dev/OpenLayers.js her? das ist komisch -> raus damit!

Offline

#34 2012-07-18 17:59:16

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Openlayers Datenbankanbindung

maxbe wrote:
elpiojo_ wrote:

alles klar wink

a) ich verwende den universitätsserver
b) den webbrowser wird zu hause mittels vpn augerufen damit ich überhaupt auf den server komme
c) mit folgender url ruf ich meine karte auf...

Wenn Du die URL deiner PHP-Seite einfach im Browser aufrufst, siehst Du da die Liste der Betriebe?
Womöglich hat dein Browser die gleichen Probleme wie ich beim Aufruf und verwendet das Uni-VPN für manche Dinge nicht...

joo, da könnte was dran sein. deshalb ja auch meine Frage, wie das Ganze in der Uni (also ohne VPN) aussieht.
z.b. kann eine ungenaue DNS-Konfiguration zu unterschiedlichen Namensauflösungen führen und so das größte Chaos verursachen.

irgendwo dort ist der Hund wohl begraben.

Gruss
walter

Offline

#35 2012-07-18 18:24:41

elpiojo_
Member
Registered: 2012-07-11
Posts: 25

Re: Openlayers Datenbankanbindung

also erst mal vielen dank für eure hilfe!


maxbe wrote:

Wenn Du die URL deiner PHP-Seite einfach im Browser aufrufst, siehst Du da die Liste der Betriebe?
Womöglich hat dein Browser die gleichen Probleme wie ich beim Aufruf und verwendet das Uni-VPN für manche Dinge nicht...

ich kann die datei über die url aufrufen und sieht wie folgt aus

point    title    description    icon
46.677997,15.548585    Dreisiebner Stammhaus    homepage=http://www.dreisiebner.com<br>telefon=0043-3453-2590    http://www.openlayers.org/dev/img/marker.png
46.673094,15.551529    Trunk Karl    homepage=http://www.trunk.st<br>telefon=0043-3453-6813    http://www.openlayers.org/dev/img/marker.png
46.672776,15.548663    Weinidylle Dreisiebner    homepage=http://www.weinidylle-dreisiebner.at<br>telefon=0043-3453-2809    http://www.openlayers.org/dev/img/mark

is nur ein kleiner auszug wollte nicht alles reinkopieren, ich vermute das dieser teil nicht richtig aufgebaut ist!

wambacher wrote:

zum vpn: klappt das auch nicht, wenn du in der uni bist? sollte eigentlich egal sein, aber man weiss ja nie.

das kann ich leider nicht sagen, da ich zurzeit arbeite und nicht auf die uni komme

wambacher wrote:

wo kommt das www.openlayers.org/dev/OpenLayers.js her? das ist komisch -> raus damit!

wenn ich das dev raus lösche wird mir mitgeteilt das open layers nicht definiert ist.

wambacher wrote:

magst du map.html und das php posten? eventuell sieht man das was.

meine map.html sieht wie folgt aus:

<html>
<head>
<!-- OpenLayers core js -->
<script src="http://www.openlayers.org/dev/OpenLayers.js"></script>
 
<!-- OpenStreetMap base layer js -->
<script
src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js">
</script>
 
<!-- Google Maps -->
<script src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&mkt=en-us">
</script>

 
<script type="text/javascript">

function init() {
//set up projections
 OpenLayers.ProxyHost = "/cgi-bin/proxy.py?url="
// World Geodetic System 1984 projection
var WGS84 = new OpenLayers.Projection("EPSG:4326");
 
// WGS84 Google Mercator projection
var WGS84_google_mercator = new OpenLayers.Projection("EPSG:900913");
 
//Initialize the map
//creates a new openlayers map in the <div> html element id map
var map = new OpenLayers.Map ("map", {
controls:[
//allows the user pan ability
new OpenLayers.Control.Navigation(),
//displays the pan/zoom tools
new OpenLayers.Control.PanZoom(),
//displays a layer switcher
new OpenLayers.Control.LayerSwitcher(),
//displays the mouse position's coordinates in a <div> html element with
new OpenLayers.Control.MousePosition({
div:document.getElementById("coordinates")
})
],
projection: WGS84_google_mercator,
displayProjection: WGS84
} );
 
//base layers
var openstreetmap = new OpenLayers.Layer.OSM();
var hybrid = new OpenLayers.Layer.VirtualEarth("BING Hybrid", {
			                type: VEMapStyle.Hybrid, sphericalMercator: true });
var aerial = new OpenLayers.Layer.VirtualEarth("BING Luftbild", {
			                type: VEMapStyle.Aerial, sphericalMercator: true });
 
var stmk = new OpenLayers.Layer.WMS( "stmk", "http://129.27.89.66/cgi-bin/mapserv?",
					{ map: "F:/ms4w/Apache/htdocs/student/master_geom/hp/map.map", layers: "stmk", transparent: "true"},
					{
						isBaseLayer: false,
						sphericalMercator: true,
						singleTile: true,
						opacity:0.8
					});
									
 
 
 var pois = new OpenLayers.Layer.Vector("POIs", {
                    
					isBaseLayer: false,
					sphericalMercator: true,
					singleTile: true,
					opacity:0.8,
                    strategies: [new OpenLayers.Strategy.BBOX({resFactor: 1.1})],
                    protocol: new OpenLayers.Protocol.HTTP({
                    url: "allebetriebe.php",
                        format: new OpenLayers.Format.Text()
                    })
                });
 
 
map.addLayers([openstreetmap,hybrid, aerial, stmk, pois]);
 pois.setVisibility(true);
// map extent
var mapextent = new OpenLayers.Bounds(15.39633, 46.61470, 15.56113, 46.72708).transform(WGS84, map.getProjectionObject());
map.zoomToExtent(mapextent);
// Interaction; not needed for initial display.
                selectControl = new OpenLayers.Control.SelectFeature(pois);
                map.addControl(selectControl);
                selectControl.activate();
                pois.events.on({
                    'featureselected': onFeatureSelect,
                    'featureunselected': onFeatureUnselect
                });  
}
// Needed only for interaction, not for the display.
        function onPopupClose(evt) {
                // 'this' is the popup.
                var feature = this.feature;
                if (feature.pois) { // The feature is not destroyed
                    selectControl.unselect(feature);
                } else { // After "moveend" or "refresh" events on POIs layer all 
                         //     features have been destroyed by the Strategy.BBOX
                    this.destroy();
                }
            }
            function onFeatureSelect(evt) {
                feature = evt.feature;
                popup = new OpenLayers.Popup.FramedCloud("featurePopup",
                                         feature.geometry.getBounds().getCenterLonLat(),
                                         new OpenLayers.Size(100,100),
                                         "<h2>"+feature.attributes.title + "</h2>" +
                                         feature.attributes.description,
                                         null, true, onPopupClose);
                feature.popup = popup;
                popup.feature = feature;
                map.addPopup(popup, true);
            }
            function onFeatureUnselect(evt) {
                feature = evt.feature;
                if (feature.popup) {
                    popup.feature = null;
                    map.removePopup(feature.popup);
                    feature.popup.destroy();
                    feature.popup = null;
                }
            }



</script>
</head>
<body onload="init()">
<div id="map" style="width:700px; height:700px;"></div>
<div id="coordinates"></div>
</body>
</html>

und die php so:

$conn = pg_connect("host=$host port=$port dbname=$dbname user=$user password=$password");



$bbx = $_GET["bbox"] ; 

$array = explode(",",$bbx);

$ble = $array[0] ;
$bbo = $array[1] ;
$bri = $array[2] ;
$bto = $array[3] ;


$betriebe = "SELECT name, homepage, telefon, breite, laenge FROM betriebe";


$result = pg_query($conn, $betriebe);
$header = "point\ttitle\tdescription\ticon\n" ;

echo $header ;

while($row = pg_fetch_object($result))
{
$daten = $row->breite.",".$row->laenge."\t".$row->name."\t"."homepage=".$row->homepage."<br>telefon=".$row->telefon."\t"."http://www.openlayers.org/dev/img/marker.png\n";
echo $daten ;
    }
pg_close($conn);
?>

die verbindungsangaben hab ich draußen gelassen.

Offline

#36 2012-07-18 18:45:54

maxbe
Member
Registered: 2010-01-19
Posts: 3,255
Website

Re: Openlayers Datenbankanbindung

Ersetz doch mal

var pois = new OpenLayers.Layer.Vector("POIs"
                    .....
                    url: "allebetriebe.php",
                    .....

durch eine richtige URL:

var pois = new OpenLayers.Layer.Vector("POIs"
                    .....
                    url: "http://129.27.89.66/student/master_geom/hp/allebetriebe.php",
                    .....

Grüße, Max

Offline

#37 2012-07-18 19:07:22

elpiojo_
Member
Registered: 2012-07-11
Posts: 25

Re: Openlayers Datenbankanbindung

maxbe wrote:

Ersetz doch mal

var pois = new OpenLayers.Layer.Vector("POIs"
                    .....
                    url: "allebetriebe.php",
                    .....

durch eine richtige URL:

var pois = new OpenLayers.Layer.Vector("POIs"
                    .....
                    url: "http://129.27.89.66/student/master_geom … triebe.php",
                    .....


ändert sich leider nichts

Offline

#38 2012-07-18 19:55:51

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Openlayers Datenbankanbindung

elpiojo_ wrote:
wambacher wrote:

zum vpn: klappt das auch nicht, wenn du in der uni bist? sollte eigentlich egal sein, aber man weiss ja nie.

das kann ich leider nicht sagen, da ich zurzeit arbeite und nicht auf die uni komme

dann ruf jemanden an, der vor Ort ist. er soll nur mal kurz die seite aufrufen.

wambacher wrote:

wo kommt das www.openlayers.org/dev/OpenLayers.js her? das ist komisch -> raus damit!

wenn ich das dev raus lösche wird mir mitgeteilt das open layers nicht definiert ist.

warum das? nimm das erste mit dev mal ganz raus - oder hast du einen speziellen Grund dafür? 

die verbindungsangaben hab ich draußen gelassen.

klar, die gehen uns nix an.

die Scripte schauen sich ja Kollegen an; ich bin halt auf der Netzwerkschiene und habe immer noch das VPN unter Verdacht.

das packen mer schon
Gruss
walter

p.s. wieviele Semester hast du noch Zeit? wink

Last edited by wambacher (2012-07-18 20:00:42)

Offline

#39 2012-07-18 20:20:29

elpiojo_
Member
Registered: 2012-07-11
Posts: 25

Re: Openlayers Datenbankanbindung

wambacher wrote:

dann ruf jemanden an, der vor Ort ist. er soll nur mal kurz die seite aufrufen.

leider sind aktuell gerade ferien und daher findet sich keiner der auf der uni ist! selbst kann ich leider erst in 2 wochen dort vorbei schauen

wambacher wrote:

src="http://openlayers.org/api/2.12/OpenLayers.js"

hab ich geändert, musste aber dann den code umstellen weil die aktion für den hybrid bing maps layer nicht erlaubt war.
der sieht jetzt so aus, aber dann funktioniert gar nichts mehr smile

var hybrid = new OpenLayers.Layer.Bing({
                name: "Hybrid",
                key: apiKey,
                type: "AerialWithLabels",
		sphericalMercator: true
		});
			

           

wambacher wrote:

wieviele Semester hast du noch Zeit?

naja das ist ein kleiner teil meiner masterarbeit und die sollte mit allem im november abgeschlossen sein wink

Offline

#40 2012-07-18 20:41:49

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Openlayers Datenbankanbindung

das mit openlayers.dev ist geklärt. das braucht man, wenn man einen proxy einsetzt.
du hast ja etwas weiter unten

 
function init() {
//set up projections
 OpenLayers.ProxyHost = "/cgi-bin/proxy.py?url="

stehen. brauchst du den? da komm ich nämlich nicht weiter, da ich sowas noch nie gemacht habe.
sollte das nur für die wms-hintergründe notwendig sein, schalte diese (und auch den proxy-host) temporär ab.

hier ist ein foren-Beitrag, der wahrscheinlich dein Problem beschreibt. ob da ne lösung steht, kann ich nicht beurteilen.
http://gis.stackexchange.com/questions/ … -proxyhost

jedenfalls gibt es da einiges zu beachten, sonst funzt es nicht.

erscheint mir sogar noch plausibler als das vpn.

Gruss
walter

ach ja, wenn ich nur die html-seite (map.html) auf meinen lokalen mini-server lege, bekomm ich das:
6n978aw6bk.png
also es funktioniert im Prinzip - es sei denn, du hast uns verschwiegen, wann genau der Fehler auftritt. der seitenaufbau klappt erstmal bis auf das rosa zeug.

Offline

#41 2012-07-18 21:26:57

elpiojo_
Member
Registered: 2012-07-11
Posts: 25

Re: Openlayers Datenbankanbindung

wambacher wrote:

function init() {
//set up projections
OpenLayers.ProxyHost = "/cgi-bin/proxy.py?url="

stehen. brauchst du den?

hm ich glaub eigentlich nicht, wenn ich mich recht erinner brauch ich den nur fürs wfs-t, habs jetzt ausgeschalten. somit kommt auch der fehler nicht mehr zugriff verweigert, aber dafür zeigt mir der firebug jetzt gar keinen fehler mehr an big_smile

weiß leider nicht wie man hier ein img einbinden kann sonst würd ich einen screen von meiner map.html hochladen. bei mir schauts eigentlich gleich aus, außer dem rosa ist halt die steiermark in blau dargestellt.

Offline

#42 2012-07-18 21:47:51

ikonor
Member
Registered: 2010-11-08
Posts: 637
Website

Re: Openlayers Datenbankanbindung

elpiojo_ wrote:

somit kommt auch der fehler nicht mehr zugriff verweigert, aber dafür zeigt mir der firebug jetzt gar keinen fehler mehr an big_smile

elpiojo_ wrote:

[...] die marker sind nicht ersichtlich, außer einer der liegt aber im meer!

Dann ist das wahrscheinlich ein Projektionsproblem. Vermutlich liegt der Marker am Nullpunkt bei Afrika? Dann ist das auch nicht nur einer, sondern alle übereinander ;-)

elpiojo_ wrote:

var pois = new OpenLayers.Layer.Vector("POIs", {
                   
                    isBaseLayer: false,
                    sphericalMercator: true,
                    singleTile: true,
                    opacity:0.8,
                    strategies: [new OpenLayers.Strategy.BBOX({resFactor: 1.1})],
                    protocol: new OpenLayers.Protocol.HTTP({
                    url: "allebetriebe.php",
                        format: new OpenLayers.Format.Text()
                    })
                });

sphericalMercator und singleTile sind keine Optionen für den Vector Layer, kannst Du entfernen.

Versuchs mal mit der Option (siehe Reprojecting Vector Data):

projection: new OpenLayers.Projection("EPSG:4326")

also (nicht getestet):

 var pois = new OpenLayers.Layer.Vector("POIs", {
                    projection: new OpenLayers.Projection("EPSG:4326"),
					isBaseLayer: false,
					opacity:0.8,
                    strategies: [new OpenLayers.Strategy.BBOX({resFactor: 1.1})],
                    protocol: new OpenLayers.Protocol.HTTP({
                    url: "allebetriebe.php",
                        format: new OpenLayers.Format.Text()
                    })
                });

Gruß,
Norbert

Offline

#43 2012-07-18 23:33:18

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Openlayers Datenbankanbindung

elpiojo_ wrote:

hm ich glaub eigentlich nicht, wenn ich mich recht erinner brauch ich den nur fürs wfs-t, habs jetzt ausgeschalten. somit kommt auch der fehler nicht mehr zugriff verweigert, aber dafür zeigt mir der firebug jetzt gar keinen fehler mehr an big_smile

Prima, jetzt kommen wir langsam zu den einfachen Sachen. Der schwarze Schirm ist nix schlimmes. - das mach ol immer, wenn was im Script faul ist. Ist ganz normal.
neben firebug gibt es im ff auch noch die Fehlerkonsole. shift-strg-J. schneller und einfacher als firebug, nur nicht so mächtig.

anwendung: konsole aufmachen, alles löschen, reload vom map.html, konsole aufmachen. da steht dann drin, wo es geknallt hat.

ikonor ist ja schon dran - ich bin erstmal froh, dass die Sache mit dem Netzwerk weg ist. Das war wirklich misteriös (und interessant)

weiß leider nicht wie man hier ein img einbinden kann sonst würd ich einen screen von meiner map.html hochladen. bei mir schauts eigentlich gleich aus, außer dem rosa ist halt die steiermark in blau dargestellt.

dann schau dir meinen Betrag an. da steht der Provider drin pic-upload.de, anmelden, bild hochladen, foren-url guttenbergen. das wars.

gruss
walter

ach ja, wenn du den proxy nicht brauchst, sollte auch die ol-zeile mit dem dev raus. die war nur dafür.

Offline

#44 2012-07-22 14:16:05

elpiojo_
Member
Registered: 2012-07-11
Posts: 25

Re: Openlayers Datenbankanbindung

ikonor wrote:

var pois = new OpenLayers.Layer.Vector("POIs", { projection: new OpenLayers.Projection("EPSG:4326"), isBaseLayer: false, opacity:0.8, strategies: [new OpenLayers.Strategy.BBOX({resFactor: 1.1})], protocol: new OpenLayers.Protocol.HTTP({ url: "allebetriebe.php", format: new OpenLayers.Format.Text() }) });

vielen dank das hat funktioniert smile die marker werden jetzt an der richtigen stelle angezeigt, aber leider öffnen sich die pop ups noch nicht

http://imageshack.us/photo/my-images/155/mapem.png/

die fehlerkonsole zeigt mir folgende fehler an, aber kein fehler davon spricht auf mein map.html oder mein php file an

http://imageshack.us/photo/my-images/849/fehler1.png/

http://imageshack.us/photo/my-images/829/fehler2i.png/

Last edited by elpiojo_ (2012-07-22 16:25:11)

Offline

#45 2012-07-22 22:14:57

ikonor
Member
Registered: 2010-11-08
Posts: 637
Website

Re: Openlayers Datenbankanbindung

elpiojo_ wrote:

leider öffnen sich die pop ups noch nicht

die fehlerkonsole zeigt mir folgende fehler an, aber kein fehler davon spricht auf mein map.html oder mein php file an
http://imageshack.us/photo/my-images/849/fehler1.png/
http://imageshack.us/photo/my-images/829/fehler2i.png/

Das sind Warnungen zum OpenLayers css, die kommen immer.

Wenn ich das bei mir nachvollziehe, erhalte ich beim Klicken eines Markers schon einen Fehler "Fehler: TypeError: map.addPopup is not a function".

Das liegt daran, das die Variable "map" innerhalb von init definiert ist und damit in onFeatureSelect später nicht mehr referenziert werden kann. Ist map außerhalb von init global definiert, funktioniert's.

Offline

#46 2012-07-23 19:19:44

elpiojo_
Member
Registered: 2012-07-11
Posts: 25

Re: Openlayers Datenbankanbindung

vielen vielen dank, jetzt hats funktioniert, es sind doch immer wieder die kleinen fehler ^^ eine frage hätte ich noch, wenn ich jetzt noch einen layer mit pop ups hinzufügen möchte, muss ich hier

selectControl = new OpenLayers.Control.SelectFeature(pois);

noch zum schluss noch den neuen einfügen oder is dann noch etwas zu beachten oder funktioniert dieses variante überhaupt nicht?

ikonor wrote:

"Fehler: TypeError: map.addPopup is not a function".

wie bist du auf den fehler gekommen durch die fehlerkonsole von ff?

Offline

#47 2012-07-23 21:17:37

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Openlayers Datenbankanbindung

elpiojo_ wrote:
ikonor wrote:

"Fehler: TypeError: map.addPopup is not a function".

wie bist du auf den fehler gekommen durch die fehlerkonsole von ff?

Wo er den Fehler gesehen hat, weiss ich nicht genau. ICH sehe sowas in der Fehlerkonsole (strg shift J) Genau dafür ist sie da, wenn man nicht stärkere Geschütze auffahren will. Drück auch mal auf  strg shift I  oder strg shift K . Und dann gibt es noch noch den "Java Script Debugger".  Den musste aber extra installieren.

Gruss
walter

Offline

#48 2012-07-23 21:27:09

ikonor
Member
Registered: 2010-11-08
Posts: 637
Website

Re: Openlayers Datenbankanbindung

elpiojo_ wrote:

vielen vielen dank, jetzt hats funktioniert

Schön, dass es geklappt hat.

elpiojo_ wrote:

eine frage hätte ich noch, wenn ich jetzt noch einen layer mit pop ups hinzufügen möchte, muss ich hier

selectControl = new OpenLayers.Control.SelectFeature(pois);

noch zum schluss noch den neuen einfügen oder is dann noch etwas zu beachten oder funktioniert dieses variante überhaupt nicht?

Dem SelectFeature Konstruktor kann man auch ein Array von Layern übergeben. Die Event Listener übergibt man dann besser auch als Option, anstatt diese am Layer zu registrieren.

Also statt

selectControl = new OpenLayers.Control.SelectFeature(pois);
pois.events.on({
    'featureselected': onFeatureSelect,
    'featureunselected': onFeatureUnselect
});  

das einbauen (nicht getestet):

var options = {
    onSelect : onFeatureSelect,
    onUnselect : onFeatureUnselect
};
selectControl = new OpenLayers.Control.SelectFeature([pois, layer2], options);
elpiojo_ wrote:
ikonor wrote:

"Fehler: TypeError: map.addPopup is not a function".

wie bist du auf den fehler gekommen durch die fehlerkonsole von ff?

Ja, ist aus der Firefox Fehlerkonsole. Ist mir erst aufgefallen, als ich die Konsole nach dem Laden der Seite geleert und dann auf einen Marker geklickt habe.

Offline

#49 2012-07-24 17:46:17

elpiojo_
Member
Registered: 2012-07-11
Posts: 25

Re: Openlayers Datenbankanbindung

ikonor wrote:

var options = { onSelect : onFeatureSelect, onUnselect : onFeatureUnselect }; selectControl = new OpenLayers.Control.SelectFeature([pois, layer2], options);

ok werde ich mal probieren, aber muss ich hier

ikonor wrote:

var options

nicht options.events.on schreiben?

ok hab mittlerweile herausgefunden das ich es so schreiben sollte

new OpenLayers.Control.SelectFeature([pois, offen]);

ohne dem options aber jetzt stellt sich mir die frage wie ich das an den handler weitergeben

habs mitterlweile gelöst smile meine lösung schaut jetzt wie folgt aus:

function onPopupClose(evt) {
    selectControl.unselect(selectedFeature);
}
function onFeatureSelect(feature) {
    selectedFeature = feature;
    var tags = feature.attributes;
    var infoHtml = "<table>";
    for (var key in tags) {
       infoHtml += "<tr><td>" + tags[key] + "</td></tr>";
    }
    infoHtml += "</table>";
    popup = new OpenLayers.Popup.FramedCloud("chicken", 
                             feature.geometry.getBounds().getCenterLonLat(),
                             null,
                             infoHtml,
                             null, true, onPopupClose);
    feature.popup = popup;
    map.addPopup(popup);
}
function onFeatureUnselect(feature) {
    map.removePopup(feature.popup);
    feature.popup.destroy();
    feature.popup = null;
}
var options = { hover: false, onSelect: onFeatureSelect, onUnselect: onFeatureUnselect };
selectControl = new OpenLayers.Control.SelectFeature([pois,offen], options);
map.addControl(selectControl);

ich danke euch für die hilfe!

Last edited by elpiojo_ (2012-07-25 17:56:57)

Offline

Board footer

Powered by FluxBB