You are not logged in.
- Topics: Active | Unanswered
Announcement
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
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
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
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!
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
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 ![]()
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 ![]()
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
alles klar
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
alles klar
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.jswo 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
elpiojo_ wrote:alles klar
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!
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!
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
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.
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
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
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? ![]()
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
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
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 ![]()
var hybrid = new OpenLayers.Layer.Bing({
name: "Hybrid",
key: apiKey,
type: "AerialWithLabels",
sphericalMercator: true
});
wieviele Semester hast du noch Zeit?
naja das ist ein kleiner teil meiner masterarbeit und die sollte mit allem im november abgeschlossen sein ![]()
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:![]()
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
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 ![]()
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
somit kommt auch der fehler nicht mehr zugriff verweigert, aber dafür zeigt mir der firebug jetzt gar keinen fehler mehr an
[...] 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 ;-)
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
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
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
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
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
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?
"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
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
vielen vielen dank, jetzt hats funktioniert
Schön, dass es geklappt hat.
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);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
var options = { onSelect : onFeatureSelect, onUnselect : onFeatureUnselect }; selectControl = new OpenLayers.Control.SelectFeature([pois, layer2], options);
ok werde ich mal probieren, aber muss ich hier
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
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