[PHP/GD/GIS] Dynamische landkaarten genereren

Pagina: 1
Acties:
  • 101 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ScuL
  • Registratie: Januari 2000
  • Laatst online: 05:22
Ik zit hier al tijden over te peinzen en piekeren maar kan maar niet tot een oplossing komen vandaar dat ik hulp van de medetweakers inroep :P

Mijn situatie is als volgt:
Ik heb een internationale community met veel leden waarvan velen hun cöordinaten in het user profiel hebben ingevuld.
Ik wil alle coördinaten uit de mySQL database kunnen opvissen en op een kaart kunnen projecteren.

Op wereldkaartniveau is me dat gelukt (alhoewel niet zo gedetailleerd).
[ps van een aantal landen ontbreken nog gegevens bijv. USA]
(aub alleen deze link gebruiken indien je werkelijk geïnteresseerd bent, de serverload van dit script is best pittig namelijk ;))

code:
1
http://www.scul.net/gis/


Ik wil nu eigenlijk kaarten per land en per continent maken waarbij je dus meer gedetailleerd kunt zien waar de mensen wonen.

#1 Ik heb inmiddels tientallen scripts en tutorials gelezen maar niets gevonden wat in de buurt van mijn streven komt
#2 Ik kan geen site vinden waarvan ik van ieder land identiek uitziende kaarten aangeboden worden (voor nop uiteraard want het is geen bedrijfsmatige investering waard). Beetje uniformiteit is wel wenselijk.
#3 Al vind ik een beperkte hoeveelheid kaarten dan kloppen ze meestal niet voor de verhouding die nodig is voor het script. Dan krijg je dus stippen op de verkeerde locaties :{

Is het überhaupt haalbaar om zoiets nog te maken of moet ik maar gewoon uitwijken naar een standaard oplossing zoals Google maps?

ProMods ETS2 uitbreiding - Mijn tijdszone is UTC+13


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Blijkbaar is het wel haalbaar, want anders zou die wereldkaart je ook niet lukken. ;) Wat is nou concreet het probleem? Dat je niet weet waar je landkaarten vandaan moet halen? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • ScuL
  • Registratie: Januari 2000
  • Laatst online: 05:22
Dat is een deel van het probleem, 2e probleem zou zijn hoe je het script kunt beperken tot een deel van de wereld.

Stel ik gebruik de kaart van Nederland als ondergrond dan denkt hij uiteraard nog steeds dat het de wereldkaart is. Dus krijg je punt #1 overbodige queries van data die in andere landen geprojecteerd zouden moeten worden. (Dan moet je dus de SQL query gaan beperken op basis van long/lat waarden... lijkt me kut.). Punt #2 heb je dan nog niet de goeie zoomratio ten op zichte van de wereld kaart. Redelijk complex :X

ProMods ETS2 uitbreiding - Mijn tijdszone is UTC+13


Acties:
  • 0 Henk 'm!

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Volgens mij is het toch noodzakelijk om rekening te houden met de max long/lat waarden (=grenzen) van je geselecteerde kaart en de zoom (ook per kaart). De vraag is natuurlijk hoe precies het moet zijn. Ik weet dat op de site van electonic youth er ook zo'n toepassing draait, maar herinner me niet meer of het java dan extern is.

Acties:
  • 0 Henk 'm!

Verwijderd

Voor Nederland zou je dit kunnen proberen:
http://www.foondump.nl/
maar voor de hele wereld wordt een ander verhaal...

Acties:
  • 0 Henk 'm!

  • ScuL
  • Registratie: Januari 2000
  • Laatst online: 05:22
moozzuzz schreef op donderdag 12 oktober 2006 @ 17:39:
Volgens mij is het toch noodzakelijk om rekening te houden met de max long/lat waarden (=grenzen) van je geselecteerde kaart en de zoom (ook per kaart). De vraag is natuurlijk hoe precies het moet zijn. Ik weet dat op de site van electonic youth er ook zo'n toepassing draait, maar herinner me niet meer of het java dan extern is.
Ja precies. Veelal zijn dit soort dingen Java.. iets wat ik niet wil ;)
Ik ken ook een andere community die een soortgelijk systeem heeft draaien (Partyflock.nl) maar zij gebruiken de kaart alleen voor NL en niet voor daarbuiten.
Verwijderd schreef op donderdag 12 oktober 2006 @ 17:47:
Voor Nederland zou je dit kunnen proberen:
http://www.foondump.nl/
maar voor de hele wereld wordt een ander verhaal...
Nope NL alleen is echt niet toereikend. In principe moet ieder land in de wereld benaderbaar zijn middels een kaart.. Wat je hier post is overigens om coordinaten te zoeken bij woonplaatsen neem ik aan? Da's op zich niet nodig.

[ Voor 54% gewijzigd door ScuL op 12-10-2006 17:57 ]

ProMods ETS2 uitbreiding - Mijn tijdszone is UTC+13


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Zoomratio is een kwestie van het uitrekenen van de coordinaat van het punt helemaal linksboven in de kleinste rechthoek die je om het land kan tekenen (in het geval van Nederland: ergens in de Noordzee, ter hoogte van het meest westelijke punt van Zeeland tot het meest noordelijke punt van de eilandengroep), en het uitrekenen van het punt helemaal rechtsonder. Als je het verschil in coordinaten tussen die twee punten weet, en de grootte van de afbeelding, dan weet je ook wat de zoomratio is.

Het eruit vissen van de data in je database kan ook vrij eenvoudig zijn als je datamodel goed is. Vertel daar eens wat over?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • ScuL
  • Registratie: Januari 2000
  • Laatst online: 05:22
M'n GIS tabel ziet er in SQL als volgt uit:

"id" = mediumint(8 ) - autoincrement+primairy key (gewoon telsleutel)
"co1" = decimal(10,5) (coordinaat 1)
"co2" = decimal(10,5) (coordinaat 2)
"city" = varchar (100) (naam van de plaats)
"country" = varchar (75) (naam van het land)
"uid" = mediumint(8 ) - is een ID die is gekoppeld aan de user_id van de user in de phpBB user DB tabellen ;)

vooorbeeld:
#5 - 51.51700 -0.10500 London United Kingdom 123

Kom er net achter dat ik ook een countrytabel heb .. die had ik even over het hoofd gezien :o echter die is nog niet uniform met de waardes die ik normaalgesproken voor de userdatabase van phpBB gebruik dus die zal ik even moeten synchroniseren. Dan kan ik in principe met SQL limiten op basis van land.

[ Voor 4% gewijzigd door ScuL op 12-10-2006 19:02 ]

ProMods ETS2 uitbreiding - Mijn tijdszone is UTC+13


Acties:
  • 0 Henk 'm!

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Ik denk dat je met het voorstel van -NME- een aardig eind komt. Zelf heb ik ooit iets in elkaar geklust met Google Earth en file informatie (demo voor m'n werk) waarvoor ik een gigantische database had met weg-segmenten in Nederland en Belgie. Google Earth is zo aardig om de "view-box" coordinaten mee te geven en zo kun je dus snel zat de segmenten (punten in jouw geval) uithalen dmv wat simpele SQL.

Nu met Land Rover Series 3 en Defender 90

Pagina: 1