[JAVA] Google Maps integreren in JAVA applicatie

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

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Gummbahla
  • Registratie: Februari 2003
  • Laatst online: 12-09 09:31
Ik heb een tijdje op internet lopen zoeken naar integratie van Google Maps in JAVA applicaties, maar heb tot nu toe nog weinig bruikbaars kunnen vinden. Tot nu toe heb ik de volgende zaken gevonden.

http://www.lamatek.com/GoogleMaps/index.jsp
"...if you're a JSP developer, then you're in the right place. Google:maps is a freeware, open-source project to provide a 100% Java front-end to the GoogleMaps™ API. No Javascript, AJAX or APIs to learn, just JSP tags. The taglibrary does all the grunt work for you, providing cross-browser and clean GoogleMaps™ output, every time."

http://www.netbeans.org/kb/samples/tapping-google-maps.html
"In 10 minutes, we'll develop a custom mapping application using Java Server Faces components, the Java BluePrints AJAX components, and Google's free map service API. Watch how you can quickly and easily take advantage of these technologies to visually construct a web app using NetBeans."

https://aerith.dev.java.net/
Deze mensen hebben het voor elkaar gekregen om Google Maps te integereren in een Java applicatie. Helaas is het project slecht gedocumenteerd en ontbreekt er volgens mij nogal wat code (?)


Wat ik nodig heb voor mijn applicatie, is volledige integratie van Google Maps in mijn applicatie. Dat houdt in dat ik niet alleen de kaart moet kunnen weergeven in mijn applicatie (met alle controls erbij), maar ook dat ik gebruik kan maken van alle functionaliteit die de Maps-API biedt.

Bestaat er reeds een dergelijke oplossing, of heeft er iemand suggesties voor andere oplossingen?

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20-09 23:58

TeeDee

CQB 241

En waarom werken jouw gevonden oplossingen niet?
Je bent dus eigenlijk op zoek naar een kant-en-klaar product?

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Gummbahla
  • Registratie: Februari 2003
  • Laatst online: 12-09 09:31
Ik ben zeker niet op zoek naar een kant-en-klaar product, maar juist naar een framework, of package dat bruikbaar is binnen een standaard Java applicatie.
De door mij gevonden oplossingen zijn voor JSP en NetBeans, maar volgens mij heb ik daar weinig aan als ik een niet-webbased applicatie wil bouwen.

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20-09 23:58

TeeDee

CQB 241

Gummbahla schreef op dinsdag 18 september 2007 @ 16:39:
Ik ben zeker niet op zoek naar een kant-en-klaar product, maar juist naar een framework, of package dat bruikbaar is binnen een standaard Java applicatie.
De door mij gevonden oplossingen zijn voor JSP en NetBeans, maar volgens mij heb ik daar weinig aan als ik een niet-webbased applicatie wil bouwen.
En de achterliggende Logic van die producten helpen je ook niet verder?

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Gummbahla
  • Registratie: Februari 2003
  • Laatst online: 12-09 09:31
Natuurlijk zou ik alles zelf kunnen uitpluizen en code hergebruiken etc.. maar mijn vraag was dus of er een framework/package beschikbaar is die dezelfde functionaliteit reeds bezit :)
Tenslotte heb ik geen zin het wiel opnieuw uit te vinden ;)

  • flowerp
  • Registratie: September 2003
  • Laatst online: 11-09 18:20
Gummbahla schreef op dinsdag 18 september 2007 @ 16:39:
De door mij gevonden oplossingen zijn voor JSP en NetBeans, maar volgens mij heb ik daar weinig aan als ik een niet-webbased applicatie wil bouwen.
Je weet dat Google Maps zelf web based is? :+

Je kunt niet de gehele wereld map van Google Maps downloaden en die dan in z'n geheel offline gebruiken. Iniedergeval, daar is geen standaard code voor nee. Wellicht dat je met je eigen code de map data die je ontvangt lokaal kunt opslaan en dan een proxy over de bestaande API heen kunt gooien die weer terug direct naar je eigen lokale opslag.

Wellicht dat dat in strijd is met de licentie op de Google Maps API?

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • Johnny
  • Registratie: December 2001
  • Laatst online: 17-09 16:59

Johnny

ondergewaardeerde internetguru

je zou een web view in je Java-applicatie kunnen maken en een eigen server die de Google-maps doorgeeft moeten laten lopen.

Het probleem is alleen dat de standaard web view in Java zeer beperkt is en enkel wat HTML weergeeft, je zal dus een andere renderin engine daarvoor moeten gebruiken, Jrex bijvoorbeeld.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • Gummbahla
  • Registratie: Februari 2003
  • Laatst online: 12-09 09:31
Hmm volgens mij was ik nog niet duidelijk genoeg :P

Mijn programma mag, moet zelfs gebruik gaan maken van de online Maps service van Google. Dat houdt in, dat ik in feite op zoek ben naar een manier waarop ik de webapplicatie GMaps kan omzetten naar een Java applicatie. Deze applicatie moet dan nog steeds gebruikmaken van de maps-server en bijbehorende services van google.
Heel banaal gezegd: trek google maps uit een webpage en stop het in een java applicatie, zonder aan functionaliteit te verliezen. :)

  • flowerp
  • Registratie: September 2003
  • Laatst online: 11-09 18:20
Gummbahla schreef op woensdag 19 september 2007 @ 12:35:
Heel banaal gezegd: trek google maps uit een webpage en stop het in een java applicatie, zonder aan functionaliteit te verliezen. :)
Opzich is dat natuurlijk helemaal geen rare opzet idd. Het is voor b.v. Java webstart applicaties een heel normaal scenario. Of je in dit geval de Java applicatie lokaal opstart of vanaf een website is dan niet zo relevant.

Ik zo snel eigenlijk 2 mogelijkheden; bekijk de source van een JSF google maps component. Hoewel een developer zich er niet aan -hoeft- te houden schrijft het platform een scheiding voor wat betreft render logica. Je zou deze kunnen bestuderen en in een Swing versie kunnen omschrijven.

Een andere mogelijkheid is misschien wat vergezocht, maar zou wellicht ook moeten werken. Draai lokaal een embedded servlet container (b.v. Tomcat, die is expliciet embedable), voeg de JSF libs hieraan toe, en een component library dat een google maps component bevat (b.v. Richfaces).

Maak nu gebruik van een HTML widget in de rest van je Java programma. Ik heb zelf een beetje ervaring met die uit de SWT toolkit. Wat je nu doet is gewoon je HTML widget laten connecten naar je eigen embedded servlet container. Die draait de google maps component. Het geheel draait gewoon binnen de Java VM.

Het help sub-systeem van Eclipse is ook ongeveer op deze manier geïmplementeerd.

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • Johnny
  • Registratie: December 2001
  • Laatst online: 17-09 16:59

Johnny

ondergewaardeerde internetguru

flowerp schreef op woensdag 19 september 2007 @ 19:23:
[...]

Maak nu gebruik van een HTML widget in de rest van je Java programma. Ik heb zelf een beetje ervaring met die uit de SWT toolkit. Wat je nu doet is gewoon je HTML widget laten connecten naar je eigen embedded servlet container. Die draait de google maps component. Het geheel draait gewoon binnen de Java VM.

Het help sub-systeem van Eclipse is ook ongeveer op deze manier geïmplementeerd.
Het verschil is dat een standaard HTML-widget Google Maps nooit gaat weergeven omdat het maar een heel beperkte subset van HTML kan weergeven, laat staan JavaScript, wat je in dit geval echt wel nodig hebt.

Het programma zelf een embedded server laten draaien gaat ook niet werken omdat Google Maps een API-key vereist die verbonden is aan een domein.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • Gummbahla
  • Registratie: Februari 2003
  • Laatst online: 12-09 09:31
Bedankt alvast voor jullie suggesties, maar ik denk dat ik een (voor mijn doel) goede oplossing heb gevonden:

Introducing JDesktop Integration Components

Hiermee kun je native web browsers uit besturingssystemen integeren in een AWT canvas. Eens kijken of dat gaat werken... :)

  • flowerp
  • Registratie: September 2003
  • Laatst online: 11-09 18:20
Johnny schreef op donderdag 20 september 2007 @ 16:02:
[...]
Het verschil is dat een standaard HTML-widget Google Maps nooit gaat weergeven omdat het maar een heel beperkte subset van HTML kan weergeven, laat staan JavaScript, wat je in dit geval echt wel nodig hebt.
En wat bedoel jij met een standaard HTML-widget? Heb je wel eens gewerkt met de SWT versie? Ik kan daar gewoon een complete website in laden als ik wil en dingen als cookies en AJAX werken er ook gewoon binnen.

Feitelijk wrapped deze SWT widget gewoon de bestaande browser op je systeem.
Het programma zelf een embedded server laten draaien gaat ook niet werken omdat Google Maps een API-key vereist die verbonden is aan een domein.
Daar valt natuurlijk omheen te werken. Als de server van google op IP checked kun je deze bij het installeren op de client natuurlijk gewoon aan vragen als onderdeel van de installatie procedure of eventueel de user zelf laten doen.
Gummbahla schreef op donderdag 20 september 2007 @ 17:35:
Bedankt alvast voor jullie suggesties, maar ik denk dat ik een (voor mijn doel) goede oplossing heb gevonden:

Introducing JDesktop Integration Components

Hiermee kun je native web browsers uit besturingssystemen integeren in een AWT canvas. Eens kijken of dat gaat werken... :)
En wat denk je dat de SWT-widget doet die ik eerder noemde? ;) Zie b.v. deze snippets: http://www.eclipse.org/swt/snippets/#browser en deze (oude) uitleg: http://www.eclipse.org/ar...owser-widget/browser.html

Waarschijnlijk is het trouwens nog niet eens nodig om helemaal een embedded server te gaan draaien om het JSF googlemaps component te hosten. De HTML die nodig is om google maps weer te geven zal vast en zeker al kant een klaar door Google geleverd worden. Dan hoef je deze HTML code eigenlijk alleen maar in een bestand te zetten en die aan je HTML widget voeren.

Als je de google maps helemaal zelf contained wilt laten zijn is dat waarschijnlijk het aller makkelijkst. Wil je ook dat de applicatie de map kan beinvloeden, dan is mogelijk het JSF component nog steeds een optie omdat die al allemaal Java interfaces hiervoor heeft. Aan de andere kant is de desktop app -> embedded server communicatie dan waarschijnlijk weer dermate complex dat je net zo goed zelf een simpele Java interface kunt bouwen.

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • Gummbahla
  • Registratie: Februari 2003
  • Laatst online: 12-09 09:31
flowerp schreef op donderdag 20 september 2007 @ 22:38:
Waarschijnlijk is het trouwens nog niet eens nodig om helemaal een embedded server te gaan draaien om het JSF googlemaps component te hosten. De HTML die nodig is om google maps weer te geven zal vast en zeker al kant een klaar door Google geleverd worden. Dan hoef je deze HTML code eigenlijk alleen maar in een bestand te zetten en die aan je HTML widget voeren.

Als je de google maps helemaal zelf contained wilt laten zijn is dat waarschijnlijk het aller makkelijkst. Wil je ook dat de applicatie de map kan beinvloeden, dan is mogelijk het JSF component nog steeds een optie omdat die al allemaal Java interfaces hiervoor heeft. Aan de andere kant is de desktop app -> embedded server communicatie dan waarschijnlijk weer dermate complex dat je net zo goed zelf een simpele Java interface kunt bouwen.
Ik ga nu proberen gewoon de standaard Maps API te gebruiken en daarmee een speciale webpagina te maken die ik dan weer via mijn Desktop-ding kan weergeven. In die pagina regel ik dan de verdere communicatie tussen de Map en m'n (web)service die dan weer in verbinding staat met de rest van het programma.
Op deze manier kan ik wss redelijk eenvoudig 2-way communicatie tussen de Map en de rest van m'n applicatie regelen.

Ik laat iig nog wel horen wat het resultaat is van mijn 'omzwervingen' :)

[ Voor 0% gewijzigd door Gummbahla op 22-09-2007 14:00 . Reden: typo ]


  • flowerp
  • Registratie: September 2003
  • Laatst online: 11-09 18:20
Gummbahla schreef op zaterdag 22 september 2007 @ 00:53:
[...]
Op deze manier kan ik wss redelijk eenvoudig 2-way communicatie tussen de Map en de rest van m'n applicatie regelen.
offtopic:
wss -> WaarSchijnlijk. Waar komt nu die 2de S vandaan in jouw afkorting?

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • Gummbahla
  • Registratie: Februari 2003
  • Laatst online: 12-09 09:31
flowerp schreef op zaterdag 22 september 2007 @ 12:25:
[...]

offtopic:
wss -> WaarSchijnlijk. Waar komt nu die 2de S vandaan in jouw afkorting?
offtopic:
Volgens mij is dat een verbastering van mss (misschien) tot wss. Wordt volgens mij toch wel vaker gebruikt? Ok dan, voortaan alleen nog maar ws en mss ;)
Zie ook: http://forum.gunk.be/showthread.php?t=11228
Pagina: 1