Automatisch genereren LAT LNG

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Justin Groot

Justin Groot

24/06/2009 23:04:00
Quote Anchor link
Beste forummers,

Ik ben nog niet jaren ervaren in het gebied van SQL enz. en weet daarom niet zeker of wat ik wil, echt mogelijk is. Het zou mij echter heel veel werk schelen en daarom doe ik toch de vraag.

Ik heb een database waarin events bijgehouden worden. Hierin staat de plaatsnaam, de locatie (straat), begindatum, einddatum, latitude, longitude.

Nu moet ik voor ieder event alle waardes zelf invullen en middels een handige site als http://81nassau.com/demos/geocode/ de LAT en LNG berekenen.

Nu vraag ik mij af: is het mogelijk om deze LAT en LNG codes automatisch te laten genereren door de straat en woonplaats uit de database te halen? Dat is tenslotte alles wat je nodig hebt om de LAT en LNG te berekenen.

Ik kan hier uren op puzzelen of research doen op internet, maar kan niks vinden.

Alvast bedankt!
 
PHP hulp

PHP hulp

22/12/2024 10:24:05
 
Dizzy

Dizzy

24/06/2009 23:07:00
Quote Anchor link
Ik heb er zelf nog nooit mee gewerkt.
Misschien kan deze link je wel verder helpen
 
Justin Groot

Justin Groot

24/06/2009 23:17:00
Quote Anchor link
dank voor de megasnelle reactie.

Ik denk dat dit wel is wat ik zoek inderdaad, echter vrees ik dat het nog even duurt voordat ik er wijs uit kom. Erg lastig allemaal hoe ik het in mijn codes moet verwerken.
Ga in ieder geval even mijn best doen!

bedankt
 
Dizzy

Dizzy

24/06/2009 23:31:00
Quote Anchor link
Zoals hierboven al vermeld heb ik er zelf nog nooit mee gewerkt, maar ik heb er even al eens mee zitten spelen en ik snap het systeem.
De makkelijkste manier volgens mij is de volgende.

Je stuurt de locatie door via een link:
bv: http://maps.google.com/maps/geo?q=1000+Brussel+Belgie&output=csv
Zoals je kan zien als je ernaar surft krijg je netjes de coördinaten van Brussel te zien.
q=het adres naarwaar je zoekt
output=soort "stijl" waarin je antwoord wilt krijgen van google maps.
Jou script zal dus moeten bestaan uit een formulier waarin je "q" definieerd (het adres). De spaties moeten vervangen worden door een plus-teken "+" en output stijl moet je erachter plakken.
http://maps.google.com/maps/geo?q= . $adres . &output=csv zal het ongeveer dan worden.


Veel succes nog!
Gewijzigd op 01/01/1970 01:00:00 door Dizzy
 
Justin Groot

Justin Groot

24/06/2009 23:46:00
Quote Anchor link
Ok ik begin het langzaam wat meer te snappen, wat betreft de output in ieder geval. Echter blijf ik het nog steeds lastig vinden om dit dan te implementeren in de huidige code die ik gebruik.

Ik wil jou of iemand anders niet met werk opzadelen, en ook zeker niet omdat ik het graag zelf wil uitvinden, maar ik krijg dit niet voor elkaar met de kennis die ik nu bezit helaas.

Op mijn site heb ik een google maps API waarin op de aangegeven locatie de marker op de maps geplaatst zal worden. Als je op de marker klikt krijg je nog wat gegevens te zien. Onderstaand het stukje code dat zorgt voor het plaatsen van de marker:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
GDownloadUrl("phpsqlajax_actueeloverzicht.php", function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var plaats = markers[i].getAttribute("plaats");
var locatie = markers[i].getAttribute("locatie");
var datum_begin = markers[i].getAttribute("datum_begin");
var datum_eind = markers[i].getAttribute("datum_eind");
var type = markers[i].getAttribute("type");
var website = markers[i].getAttribute("website");
var Info = markers[i].getAttribute("Info");
var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var marker = createMarker(point, plaats, locatie, datum_begin, datum_eind, type, website, Info);
map.addOverlay(marker);
}
});
}
}


Hij haalt hier de lat en Lng codes gewoon uit de database waar ik ze handmatig moet invoeren steeds. Wat heel veel werk zou schelen is dus als hij de Lat en LNG zelf zou kunnen maken en ik ze niet handmatig hoef in te voeren.

Je hebt hier zelf nog niet vaak mee gewerkt zei je net dus ik vrees dat je mij in dit deel misschien niet kan helpen, in dat geval dank ik je in ieder geval voor de hulp tot nu toe! Want ben wel weer wat wijzer en een stap dichter bij de oplossing.

Greetz

edit: hier misschien nog stukje code wat erbij hoort, uit de phpsqlajax_actueeloverzicht.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Start XML file, echo parent node
echo '<markers>';

// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE
  echo '<marker ';
  echo 'plaats="' . parseToXML($row['plaats']) . '" ';
  echo 'locatie="' . parseToXML($row['locatie']) . '" ';
  echo 'datum_begin="' . parseToXML($row['datum_begin']) . '" ';
  echo 'datum_eind="' . parseToXML($row['datum_eind']) . '" ';
  echo 'website="' . parseToXML($row['website']) . '" ';
  echo 'Info="' . parseToXML($row['Info']) . '" ';
  echo 'lat="' . $row['lat'] . '" ';
  echo 'lng="' . $row['lng'] . '" ';
  echo 'type="' . $row['type'] . '" ';
  echo '/>';
}

// End XML file
echo '</markers>';
Gewijzigd op 01/01/1970 01:00:00 door Justin Groot
 
Justin Groot

Justin Groot

25/06/2009 00:22:00
Quote Anchor link
Mocht dit niet genoeg zijn; ik heb de 2 nodige files even in een txt bestand gezet. Wellicht dat met deze info iemand mij kan uitleggen hoe ik de geocoder kan implementeren. Helaas kom ik er echt niet uit en vrees ik dat ik alles handmatig moet gaan invoeren.

http://www.kermis.nu/indexpage.txt
http://www.kermis.nu/phpsqlajax_actueeloverzicht.txt

Dit is de XML output:

http://www.kermis.nu/phpsqlajax_actueeloverzicht.php

Deze pagina geeft duidelijke informatie:

http://www.whelp.nl/google-maps-adressen-markers/

Echter heb ik geen idee waar ik de JS moet verwerken en hoe ik vervolgens het ShowAddress deel moet toevoegen.

Gelieve Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Justin Groot
 
Dizzy

Dizzy

25/06/2009 12:34:00
Quote Anchor link
Hey,

Misschien kan dit script je nog een beetje verder helpen.
http://www.phphulp.nl/php/scripts/2/1379/

Dat scriptje werkt met dezelfde URL-aanvraag als ik je heb uitgelegd.
Als je dat scriptje ontleed zal je weeral wat wijzer worden op de manier HOE je zoiets kan verwerken met PHP.

Veel succes verder!
 
Justin Groot

Justin Groot

26/06/2009 03:09:00
Quote Anchor link
Zoals je ziet ben ik tot midden in de nacht bezig om dit werkend te krijgen. Het is inmiddels 10 over 3 en het lukt me niet. Ik heb ALLES geprobeerd en van stap tot stap geprobeerd te kijken waar het probleem kan zitten. Daarmee ben ik al steeds stapjes verder gekomen.
Wat ik nu probeer is om de gegevens in markers te laten plaatsen waardoor ik het via een ander bestand gemakkelijk kan ophalen. Ik kom tot onderstaande code, waarin de LAT en LNG netjes weergegeven worden (dat werkt dus!). Helaas krijg ik het niet voor elkaar om de de onderstaande codes (om er markers van te maken) er in te verwerken.

Dit moet erbij voor de markers:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
header("Content-type: text/xml");

// Start XML file, echo parent node
echo '<markers>';

  // ADD TO XML DOCUMENT NODE
  echo '<marker ';

 echo '/>';

// End XML file
echo '</markers>';



Dit is mijn huidige code, werkend:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
header("cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
require("phpsqlajax_dbinfo.php");

function
parseToXML($htmlStr)
{

$xmlStr=str_replace('<','&lt;',$htmlStr);
$xmlStr=str_replace('>','&gt;',$xmlStr);
$xmlStr=str_replace('"','&quot;',$xmlStr);
$xmlStr=str_replace("'",'&#39;',$xmlStr);
$xmlStr=str_replace("&",'&amp;',$xmlStr);
return $xmlStr;
}


// Opens a connection to a MySQL server
$connection=mysql_connect ($localhost, $username, $password);
if (!$connection) {
  die('Not connected : ' . mysql_error());
}


// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
  }


// Select all the rows in the markers table
$query = "SELECT * FROM kermisoverzicht WHERE CURRENT_DATE() <= datum_eind AND CURRENT_DATE() >= datum_begin";
$result = mysql_query($query);
if (!$result) {  
  die('Invalid query: ' . mysql_error());
}


while($row = mysql_fetch_array($result)) {

$locatie = "$row[2]";
$plaats = "$row[1]";

$apikey="ABQIAAAAZw8CT2s7UfYN5l6KArRr3BQbCREXyyBSr-lsz1UsNuNfBmODnBSH4g3PWHAFoVVxGM_jSdLPO5QSkA"; //vul hier jouw googlemaps API key in


$url = "http://maps.google.nl/maps/geo?output=csv&key=".$apikey."&q=".$locatie."+".$plaats;



if(false !== ($data = @file_get_contents($url)))
{


  list(,,$longitude, $latitude) = explode(",",$data);
  
  echo 'longitude="'. $longitude .'" '.PHP_EOL;
  echo 'latitude="'. $latitude .'" '.PHP_EOL;

}

}


?>


De foutmeldingen die ik steeds krijg is "Cannot modify header information - headers already sent by" en dan reffereerd ie naar regel 49, waar de echo <marker> begint.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
Warning: Cannot modify header information - headers already sent by (output started at /storage/mijndomein/users/097908/public/sites/www.kermis.nu/phpsqlajax_actueeloverzicht2.php:49) in /storage/mijndomein/users/097908/public/sites/www.kermis.nu/phpsqlajax_actueeloverzicht2.php on line 45
longitude="51.9552573" latitude="5.2263911" />


Dar is een resultaat bijvoorbeeld.

Kan je wellicht zien of ik iets fout doe? Alvast bedankt!!
Gewijzigd op 01/01/1970 01:00:00 door Justin Groot
 
Dizzy

Dizzy

26/06/2009 10:33:00
Quote Anchor link
Als je dit wilt omzetten naar een XML file?
Waarom gebruik je dan niet gewoon als "output=xml" in de google link?
Dan krijg je zo'n XML bestand teruggestuurd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<kml xmlns="http://earth.google.com/kml/2.0">
  <Response>
    <name>1600 amphitheatre mountain view ca</name>
    <Status>
      <code>200</code>
      <request>geocode</request>
    </Status>
    <Placemark>
      <address>
        1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA
      </address>
      <AddressDetails Accuracy="8">
        <Country>
          <CountryNameCode>US</CountryNameCode>
          <AdministrativeArea>
            <AdministrativeAreaName>CA</AdministrativeAreaName>
           <SubAdministrativeArea>
             <SubAdministrativeAreaName>Santa Clara</SubAdministrativeAreaName>
             <Locality>
               <LocalityName>Mountain View</LocalityName>
               <Thoroughfare>
                 <ThoroughfareName>1600 Amphitheatre Pkwy</ThoroughfareName>
               </Thoroughfare>
               <PostalCode>
                 <PostalCodeNumber>94043</PostalCodeNumber>
               </PostalCode>
             </Locality>
           </SubAdministrativeArea>
         </AdministrativeArea>
       </Country>
     </AddressDetails>
     <Point>
       <coordinates>-122.083739,37.423021,0</coordinates>
     </Point>
   </Placemark>
  </Response>
</kml>

Nu moet je de waarde <coordinates> eruithalen. En daar simpelweg een explode op toepassen en dan de LAT en LNG in je database stoppen doormiddel van een Query.
Normaal zou het je nu moeten lukken!

Good luck

edit: misschien kan dit je nog wel helpen.
Gewijzigd op 01/01/1970 01:00:00 door Dizzy
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.