Zobacz pełną wersję : SOBI 2 template with Google Maps
Witam,
pracuje z Joomla. 1.5.7 oraz SOBI2 RC 2.9.0 i mam od dawna nastepujace dwa problemy:
1. w jednej linijce wyswietla mi sie osoba kontaktowa oraz czesc ulicy :( zobacz (http://www.nasz-berlin.com/index.php?option=com_sobi2&sobi2Task=sobi2Details&catid=3&sobi2Id=2&Itemid=73)
2. próbuje zainstalowac Template 2 (Standard template with Google Maps on the top) z strony http://www.sigsiu.net/download/templates/ ALE Mapy google nie pokazuje w opisie szczegółowym, tak jak jest przy tym template pokazane zobacz (http://www.sigsiu.net/download/templates/template_2.html) :(
Wymienilem po sciagnieciu plik na server w: ( /components/com_sobi2/templates/default/sobi2.vc.tmpl.php), API Key tez jest wpisany, jak klikne na ZOBACZ NA MAPIE to funkcionuje ale w opisie szczegółowym nie pokazuje wycinku mapy google....
Thx z gory za pomoc !
1. w jednej linijce wyswietla mi sie osoba kontaktowa oraz czesc ulicy :( zobacz (http://www.nasz-berlin.com/index.php?option=com_sobi2&sobi2Task=sobi2Details&catid=3&sobi2Id=2&Itemid=73)
No patrze i nie widzę :eek:
Mapy google nie pokazuje w opisie szczegółowym, tak jak jest przy tym template pokazane zobacz (http://www.sigsiu.net/download/templates/template_2.html) :(
A koordynaty geograficzne i ich konfiguracje masz?
http://www.sigsiu.net/faq/how_to_use_google_maps.html
albo:
http://tinyurl.com/4yl59h
Dzieki. juz sie zabieram za realizacje!
Witam... Brain community of Joomla
zrobilem jak kazano oraz napisano i nadal nie wyswietla mi mapy google w Template SOBI2.... Zrobilem nastepujace kroki:
1. Wpisalem aktywny Google API Key, zrobilem konfiguracje:
http://www.nasz-berlin.com/bilder/a1.jpg
2. Dodalem 2 nowe pola dla dlugosci i szerokosci graficznej:
http://www.nasz-berlin.com/bilder/a2.jpg
Odczyt wspolrzednych wg adresu:
4. Sprawdzamy:
- Klucz API Google JEST!
- Pola geograficzne field_longitude, field_latitude JEST!
- Definicja pol geo. w zakladce Google Maps w SOBIE2 JEST!
- Pola _postcode, _city, _street, _contry + NOWE "tekst kodu" JEST!
5. W nowym polu field_fetch typu "text code"
http://www.nasz-berlin.com/bilder/a3.jpg
wstawilem odpowiedni skrypt z http://tinyurl.com/4yl59h
6. Sciaglem Template 2 (Standard template with Google Maps on the top) z http://www.sigsiu.net/download/templates/
i skopiowalem plik sobi2.details.tmpl.php
do foldera: .../components/com_sobi2/templates/default a stary nazwalem sobi2.details.tmpl.php.old
z tego co wyczytalem to wszystko.... ale nadal nie widze wycinak mapy google wg wpisanego adresu !! ?? !! ?? :mad:
DZIEKUJE Z GORY ZA POMOC / POZDRAWIAM...
Puri. (www.nasz-berlin.com (http://www.nasz-berlin.com))
A widzę że sobie pięknie przetłumaczyłeś kod JavaScript i wkleiłeś obie wersje do edytora i teraz jak wchodzę na twoją stronę do formularza to od razu z buta:
Error: missing ; before statement
Source File: http://www.nasz-berlin.com/index.php?option=com_sobi2&sobi2Task=addNew&Itemid=73
Line: 850, Column: 43
Source Code:
var postalCodeField = 'field_postcode' ; postalCodeField var = 'field_postcode ";
ale poza tym także:
Error: this.$events[type].keys is undefined
Source File: http://www.nasz-berlin.com/templates/templatka11/js/mootools1_1.js
Line: 49
Nota bene chyba ma deja vu: http://forum.joomla.pl/showthread.php?t=22632#post91850 :eek:
A widzę że sobie pięknie przetłumaczyłeś kod JavaScript i wkleiłeś obie wersje do edytora = NIC NIE ROZUMIEM :confused:
i teraz jak wchodzę na twoją stronę do formularza to od razu z buta:
http://www.nasz-berlin.com/index.php?option=com_sobi2&sobi2Task=addNew&Itemid=73
(http://www.nasz-berlin.com/index.php?option=com_sobi2&sobi2Task=addNew&Itemid=73)U MNIE W FIREFOX 3 NIE MA ZADNEGO BLEDU.... ?!?!?!?!
ale poza tym także:
http://www.nasz-berlin.com/templates/templatka11/js/mootools1_1.js
a to co za link ???
neo_fox (http://forum.joomla.pl/member.php?u=2688) ja juz nic nie rozumiem..... :mad:
A widzę że sobie pięknie przetłumaczyłeś kod JavaScript i wkleiłeś obie wersje do edytora = NIC NIE ROZUMIEM :confused:
Zobacz sobie kod który wkleiłeś menadżerze pól.
Nie zastanowiło cię że masz dwa przyciski do pobierania koordynatów?
U MNIE W FIREFOX 3 NIE MA ZADNEGO BLEDU.... ?!?!?!?!
Powiadasz:
http://informatyka.suski.eu/temp/nasz-berlin.com.png
...zrobilem tak jak pisalo, tzn jak to zrozumialem... hmmm...
...nadal nie wiem co mam zmienic zeby mapki smigaly na templates z SOBI2...
:( dzieki, pa.
no właśnie że nie zrobiłeś ;)
kowalski_michal
24-02-2009, 21:48
Witajcie - u mnie wystapil ten sam problem.. nie tyle z mapa - z nia sobie poradzilem.. co z opisem.
wyswietla mi sie to w ten sposob.:
Przykladowa (http://www.korex.net.pl/katalog-firm/9.html) krakowska
32-500 chrzanów
chrzanowski
małopolskie Polska
Strona Internetowa (http://www.www.pl/)
najpierw nazwa + ulica
ponizej dane..
prosze o pomoc
Siema Michal,
ja do dzis nie rozwiazalem obu problemow! Jak widzisz w odpowiedziach nikt nie napisal konkretnej pomocy :(
Dlugos i szerokos geograficzna wpisuje recznie :(
A Adres nadal wyswietla sie jak mu sie podoba :(
WIEC TO JA BYL BYM ZOBOWIAZANY GDY OTRZYMASZ KONKRETNA POMOC ZA PRZEKAZANIE JA TUTAJ DALEJ !
Pozdrawiam - Puri.
Podpinam się pod temat..
Może tu ktoś pomoże..
mam joomle 1.0.15 i sobi 2
i za cholere nie potrafie skonfigurować google maps..
korzystałem z porad siugsiu.net ,
i zrobiłem wszystko co jest tam napisane, lecz nadal mapy nie działają...
wszystko czyli , przypisany API klucz google
2 pola field_.. dla dlugosci i szerokosci
ustaione na input..
i dalej nie pojmuje.. prosze o pomoc.. neo_fox..
pozdrawiam gm
Ja do dzis tego nie rozgryzlem !!!
Wpisuje dlugosc i szerokosc do kazdego wpisu recznie...
Pozdr - Puri. :confused:
Wyswietlanie mapy w opsie szczegolwym bez wpisywania recznie koordynatow.
U mnie dziala wg :
Step 1
Goto - Configuration - Custom Fields Manager
Create a Custom field called 'field_longitude' without the quotes
Fileld Label = Longitude
Field Type = Inputbox
Click Save
Step 2
Create a Custom Field called 'field_latitude' without the quotes
Fileld Label = Latitude
Field Type = Inputbox
Click Save
Step 3
Make sure all of the following fields exist...If not recreate them....I deleted Country when I first set this up...The fetch failed until I put it back....
field for post code 'field_postcode' type = inputbox
field for city 'field_city' type = inputbox
field for street 'field_street' type = inputbox
field for country 'field_country' type = inputbox
Step 4
Create a new field type "text code" (formerly called custom code)
Cut and paste the script from this link into the code box
skrypt:
<script type="text/javascript" language="JavaScript">
/* adjust here the field names if they are not correct */
var apiKey = "{googleApiKey}";
var postalCodeField = 'field_postcode';
var cityField = 'field_city';
var streetField = 'field_street';
var countryField = 'field_country';
var latitudeField = 'field_latitude';
var longitudeField = 'field_longitude';
function fetchCoordinates() {
/* here you should not change anything */
var gRequest = null;
var postalcode = document.getElementById(postalCodeField).value;
var city = document.getElementById(cityField).value;
var street = document.getElementById(streetField).value;
var country = document.getElementById(countryField).value;
if(postalcode == '' || city == '' || street == '' || country == '' ) {
/* you can change the error message here */
alert("Proszę wypełnić pola adresowe");
}
else {
var gRequest = "http://maps.google.com/maps/geo?q=" +street+ "+" +postalcode+ "+" +city+ "+" +country+ "&callback=getCoordinates&output=JSON&key="+apiKey;
var scriptObj = document.createElement("script");
scriptObj.setAttribute("type", "text/javascript");
scriptObj.setAttribute("src", gRequest);
document.getElementsByTagName("head").item(0).appendChild(scriptObj);
}
}
function getCoordinates(data) {
switch(data.Status.code) {
case 610:
/* you can change the error message here */
alert("Api key nieprawidłowy: {googleApiKey}");
break;
case 603:
case 602:
case 601:
case 500:
/* you can change the error message here */
alert("Nie można pobrać koordynatów geograficznych dla tego adresu");
break;
case 200:
document.getElementById(latitudeField).value = data.Placemark[0].Point.coordinates[1];
document.getElementById(longitudeField).value = data.Placemark[0].Point.coordinates[0];
break;
}
}
***********
<!-- You can change the "value" (The label on the button) here -->
<input type="button" class="button" onclick="fetchCoordinates();" value="Pobierz automatycznie koordynaty geograficzne do GoogleMaps"/>
Step 5
Goto "View Configuration" - "Google Maps"
Step 6
Enter your google maps API
Step 7
Check the box to show google maps.
Set "Map Latitude Field" to field_latitude
Set "Map Longitude Field" to field_longitude
Step 8 - Testing
Pozostaje konfiguracja (nazwy pol, ukrys szer dl w opisie szczegolwym etc)
Witam,
zrobilem jak napisales ale jeszcze gdzies w tym diabel siedzi, bo JUZ :) pokazuje w formularzu "Dodaj wpis" nazwe " Pobierz koordynaty..." ale NIE MA FUNKCJI BUTTON :confused: tylko martwy tekst...
zobacz tutaj (http://www.nasz-berlin.com/index.php?option=com_sobi2&sobi2Task=addNew&Itemid=73)
Dziekuje i pozdrawiam.
www.techpolis.pl > baza firm (www w trakcie budowy). Mozesz zobaczyc jak to wyglada, jesli zrobilem wg w/w krokow. posprawdzaj wszystko jeszcze raz ... jak nie pojdzie to pomyslimy .... jak wroce z pracy :)
btw: zalogowalem sie u ciebie ... no i rzeczywiscie wcielo przyciski. (może skrypt nie przekopiowales caly?)
Hej Lagren,
raczej zrobilem wszystko 100% wedlug instrukcji i chyba juz z 5 razy sprawdzilem wszystko... Tak u mnie to wyglada w BACKEND SCREENSHOT (http://www.nasz-berlin.com/images/google_maps.jpg)
A code jest ten (kopia 1:1):
<script type="text/javascript" language="JavaScript">
/* adjust here the field names if they are not correct */
var apiKey = "{googleApiKey}";
var postalCodeField = 'field_postcode';
var cityField = 'field_city';
var streetField = 'field_street';
var countryField = 'field_country';
var latitudeField = 'field_latitude';
var longitudeField = 'field_longitude';
function fetchCoordinates() {
/* here you should not change anything */
var gRequest = null;
var postalcode = document.getElementById(postalCodeField).value;
var city = document.getElementById(cityField).value;
var street = document.getElementById(streetField).value;
var country = document.getElementById(countryField).value;
if(postalcode == '' || city == '' || street == '' || country == '' ) {
/* you can change the error message here */
alert("Proszę wypełnić pola adresowe");
}
else {
var gRequest = "http://maps.google.com/maps/geo?q=" +street+ "+" +postalcode+ "+" +city+ "+" +country+ "&callback=getCoordinates&output=JSON&key="+apiKey ;
var scriptObj = document.createElement("script");
scriptObj.setAttribute("type", "text/javascript");
scriptObj.setAttribute("src", gRequest);
document.getElementsByTagName("head").item(0).appe ndChild(scriptObj);
}
}
function getCoordinates(data) {
switch(data.Status.code) {
case 610:
/* you can change the error message here */
alert("Api key nieprawidłowy: {googleApiKey}");
break;
case 603:
case 602:
case 601:
case 500:
/* you can change the error message here */
alert("Nie można pobrać koordynatów geograficznych dla tego adresu");
break;
case 200:
document.getElementById(latitudeField).value = data.Placemark[0].Point.coordinates[1];
document.getElementById(longitudeField).value = data.Placemark[0].Point.coordinates[0];
break;
}
}
***********
<!-- You can change the "value" (The label on the button) here -->
<input type="button" class="button" onclick="fetchCoordinates();" value="Pobierz automatycznie koordynaty geograficzne do GoogleMaps"/>
...wiec juz naprawde sam nie wiem :confused:
DZiekuje za poswiecony czas i pozdrawiam z Berlina - Puri.
Widze tylko roznice w polach dlugosci i szerokosci. Masz wlaczone pole administracyjne na TAK, ja mam na NIE. Nie sadze, zeby to bylo to.
Reszte mam tak samo.
joomla 1.5.9, sobi2 RC 2.9.1.0.
niestety.. mi też się nie udało..
zrobiłem wszystko co było opisane w poście lagren'a..
jedyne czego nie wiem... to jak nazwac pole z text code
moze dlatego cos nie dziala..
Pozdrawiam i dziękuje za wskazówki
Wyswietlanie mapy w opsie szczegolwym bez wpisywania recznie koordynatow.
U mnie dziala wg :
Step 1
Goto - Configuration - Custom Fields Manager
Create a Custom field called 'field_longitude' without the quotes
Fileld Label = Longitude
Field Type = Inputbox
Click Save
Step 2
Create a Custom Field called 'field_latitude' without the quotes
Fileld Label = Latitude
Field Type = Inputbox
Click Save
Step 3
Make sure all of the following fields exist...If not recreate them....I deleted Country when I first set this up...The fetch failed until I put it back....
field for post code 'field_postcode' type = inputbox
field for city 'field_city' type = inputbox
field for street 'field_street' type = inputbox
field for country 'field_country' type = inputbox
Step 4
Create a new field type "text code" (formerly called custom code)
Cut and paste the script from this link into the code box
skrypt:
<script type="text/javascript" language="JavaScript">
/* adjust here the field names if they are not correct */
var apiKey = "{googleApiKey}";
var postalCodeField = 'field_postcode';
var cityField = 'field_city';
var streetField = 'field_street';
var countryField = 'field_country';
var latitudeField = 'field_latitude';
var longitudeField = 'field_longitude';
function fetchCoordinates() {
/* here you should not change anything */
var gRequest = null;
var postalcode = document.getElementById(postalCodeField).value;
var city = document.getElementById(cityField).value;
var street = document.getElementById(streetField).value;
var country = document.getElementById(countryField).value;
if(postalcode == '' || city == '' || street == '' || country == '' ) {
/* you can change the error message here */
alert("Proszę wypełnić pola adresowe");
}
else {
var gRequest = "http://maps.google.com/maps/geo?q=" +street+ "+" +postalcode+ "+" +city+ "+" +country+ "&callback=getCoordinates&output=JSON&key="+apiKey;
var scriptObj = document.createElement("script");
scriptObj.setAttribute("type", "text/javascript");
scriptObj.setAttribute("src", gRequest);
document.getElementsByTagName("head").item(0).appendChild(scriptObj);
}
}
function getCoordinates(data) {
switch(data.Status.code) {
case 610:
/* you can change the error message here */
alert("Api key nieprawidłowy: {googleApiKey}");
break;
case 603:
case 602:
case 601:
case 500:
/* you can change the error message here */
alert("Nie można pobrać koordynatów geograficznych dla tego adresu");
break;
case 200:
document.getElementById(latitudeField).value = data.Placemark[0].Point.coordinates[1];
document.getElementById(longitudeField).value = data.Placemark[0].Point.coordinates[0];
break;
}
}
***********
<!-- You can change the "value" (The label on the button) here -->
<input type="button" class="button" onclick="fetchCoordinates();" value="Pobierz automatycznie koordynaty geograficzne do GoogleMaps"/>
Step 5
Goto "View Configuration" - "Google Maps"
Step 6
Enter your google maps API
Step 7
Check the box to show google maps.
Set "Map Latitude Field" to field_latitude
Set "Map Longitude Field" to field_longitude
Step 8 - Testing
Pozostaje konfiguracja (nazwy pol, ukrys szer dl w opisie szczegolwym etc)
Znalazłem chyba rozwiązanie problemu:
Pierwsza rzecz to: *********** , zamiast nich powinno być < / s c r i p t > bez spacji, bo przy pisaniu posta forum zamienia na gwiazdki
Drugi błąd to linijka: document.getElementsByTagName("head").item(0).appe ndChild(scriptObj);
przy kopiowaniu powstaje spacja między appe nChild(scriptObj);
a musi być razem: appenChild(scriptObj);
po zmianie tych 2 rzeczy zaczęło działać, chociaż znalazłem małą ułomność tego rozwiązania.
Ok, a ja ciagle widze napis z linkiem do mapy "Zobacz na mapie" zamiast mapy :/ Moze cos w szablonie trzeba zmienic? Jakies porady?
Witam;
Czy istnieje możliwość uzyskania takiego efektu w sobi2 jak ma np Zumi? czyli w polu miasta wpisuję nazwę miejscowości i po pierwszej literce pole sugeruje ciąg dalszy nazwy czyli wpisuję By... a pole próbuje dokończyć wyraz Bydgoszcz.
Wspaniala Jola znow uraczyla mnie swoja madroscia :)
Dzięki
tomputer
27-11-2009, 16:43
Ja mam jedno podstawowe pytanie jakie mają byc ustawienia dla pól latitude i longitude
czy mają byc opublikowane, czy ukryte i czy jako pola administracyjne.
Witam,
Opublikowane
Ukryte (jak chcesz wyświetlić wartości to zaznacz gdzie)
Pole administracyjne: Nie
Witam
Ma ktoś problem z ApiKey ? mam wpisany poprawny w sobi2 do niedawna to jeszcze działało a teraz jak chce dodac nowa mapę wyskakuje mi że Apikey jest niepoprawny a jest poprawny :)
Google coś namieszało ?
ApiKey jest przypisywany do adresu witryny,
dla Google
moja_strona.pl i
www.moja_strona.pl
to dwie różne witryny! :)
Mapa działa jesli wpisze sie koordynaty recznie a nie da sie pobrac ich przy wypelnianiu formularza, API jest wiec poprawny a cos sie stalo przy wysylaniu zapytania. Google zmienilo polityke ? chyba ze musze uaktualnic sobi do nowszej wersji.
Czyli problem dotyczy samego formularza i akcji: Pobierz koordynaty?
Dokładnie, gdy chcę pobrać koordynaty wyskakuje błąd APIKEY
Sprawdź w podglądzie źródła strony czy ApiKey jest prawidłowo przekazywany do skryptu (strona z formularzem)
Niestety wydaje mi się że jest to problem po stronie SOBI - miałem działające pobieranie koordynat na 2 poralach a od kilku dni na żadnym nie działa !
Api nie może być wpisane źle, bo przy "normalnej mapie działa" wyświetla stare wpisy ale nie można pobrać nowych koordynat Może ktoś zna przyczynę ?
Może ktoś rozwiązał problem ?
Witam,
@egon170 - możesz podać adres strony?
Witam!
Mam ten sam problem - po zaktualizowaniu sobi2 pojawił się problem z pobieraniem koordynatów... pomimo poprawnego apikey pojawia się błąd
apikey jest poprawny ponieważ mapy w starych wpisach działają poprawnie.
Myślę, że problem leży po stronie Sobi2 lub Google zmieniło politykę dotyczącą pobierania współrzędnych - może ktoś znalazł już rozwiązanie?
Rozwiązanie problemu:
w skrycie pobierającym koordynaty należy zamienić kod:
var gRequest = "http://maps.google.com/maps/geo?q=" +street+ "+" +postalcode+ "+" +city+ "+" +country+ "&callback=getCoordinates&output=JSON&key="+apiKey;na:
var gRequest = "http://maps.google.com/maps/geo?q=" +street+ "+" +postalcode+ "+" +city+ "+" +country+ "&output=json&key="+apiKey+"&callback=getCoordinates";
kiprafon
28-12-2009, 22:12
Ten sam problem, zmiana w kodzie pobierającym koordynaty nie pomogła. Jeszcze 2 miesiące temu wszystko działało.
I ktos rozwiązał ten problem ? bo nawet nie chce się utworzyć
field_fetch_coordinates
czyli pole gdzie jest skrypt :
<script type="text/javascript" language="JavaScript">
/* adjust here the field names if they are not correct */
var apiKey = "{googleApiKey}";
var postalCodeField = 'field_postcode';
var cityField = 'field_city';
var streetField = 'field_street';
var countryField = 'field_country';
var latitudeField = 'field_latitude';
var longitudeField = 'field_longitude';
function fetchCoordinates() {
/* here you should not change anything */
var gRequest = null;
var postalcode = document.getElementById(postalCodeField).value;
var city = document.getElementById(cityField).value;
var street = document.getElementById(streetField).value;
var country = document.getElementById(countryField).value;
if(postalcode == '' || city == '' || street == '' || country == '' ) {
/* you can change the error message here */
alert("Please fill in the address fields first");
}
else {
var gRequest = "http://maps.google.com/maps/geo?q=" +street+ "+" +postalcode+ "+" +city+ "+" +country+ "&output=json&key="+apiKey+"&callback=getCoordinates";
var scriptObj = document.createElement("script");
scriptObj.setAttribute("type", "text/javascript");
scriptObj.setAttribute("src", gRequest);
document.getElementsByTagName("head").item(0).appendChild(scriptObj);
}
}
function getCoordinates(data) {
switch(data.Status.code) {
case 610:
/* you can change the error message here */
alert("Api key not valid: {googleApiKey}");
break;
case 603:
case 602:
case 601:
case 500:
/* you can change the error message here */
alert("Cannot get coordinates for this address");
break;
case 200:
document.getElementById(latitudeField).value = data.Placemark[0].Point.coordinates[1];
document.getElementById(longitudeField).value = data.Placemark[0].Point.coordinates[0];
break;
}
}
</script>
<!-- You can change the "value" (The label on the button) here -->
<input type="button" class="button" onclick="fetchCoordinates();" value="Fetch Coordinates"/>
totalna beznadzieja męczę sie z tym już 2 dni i nic.
text code nie przyjmuje mi wpisać całego skryptu mówi ze wystąpił błąd jak zapisuje.
POMOCY
Może ktoś opisać te kroki po polsku, mój angielski nie jest najlepszy, a tam wszystko zostało posiane po angielsku.
Poradziłem sobie z tym całym tekstem ale podłączam się do problemu kolegi. Podczas próby zapisania pliku wyskakuje błąd "Błąd wewnętrzny, spróbuj ponownie". Znalazł już ktoś rozwiązanie na zaistniały problem?
freeJoomla
27-08-2010, 13:43
możesz dodać kod przez bazę danych sprawdź jaka tabela sobi2 przechowuje właściwości pól i analogicznie spróbuj dodać przez phpmyadmin
TO jest dla mnie za trudne. Nie znam się na bazach danych tak dobrze, aby grzebać w nich.
freeJoomla
27-08-2010, 18:15
a potrafisz wejść do phpmyadmin ? jak tak to napisze co trzeba zrobić dokładniej
No takie podstawowe rzeczy to potrafię. Grzebać w kodzie potrafię, edytować, wyciągać tabele z bazy, przenosić bazy na inne serwery, ale nic co jest związane z zadawaniem konkretnych zapytań do bazy. Jak możesz to proszę o opis.
freeJoomla
27-08-2010, 19:07
1.wejdź na zaplecze do swojej Joomli, przejdź do komponentu Sobi2, Konfiguracja -> Menadżer pól następnie, zapamiętaj ID pola do którego chcesz skopiować kod Javascript (ostania kolumna),
2.następnie wejdź do PHPMyAdmin, wybierz swoją bazę danych, w tej bazie musisz odnaleźć tabelę jos_sobi2_fields (jos_ - jak masz domyślny prefix), wyświetl rekordy znajdujące się w niej,
3.następnie znajdź rekord (wiersz), gdzie w kolumnie fieldid (pierwsza kolumna)jest wpisane ID (to z zaplecza), następnie edytuj ten wiersz (klik na ołówek) i w polu fieldDescription wklej kod javascript
<script type="text/javascript" language="JavaScript">
/* adjust here the field names if they are not correct */
var apiKey = "{googleApiKey}";
var postalCodeField = 'field_postcode';
var cityField = 'field_city';
var streetField = 'field_street';
var countryField = 'field_country';
var latitudeField = 'field_latitude';
var longitudeField = 'field_longitude';
function fetchCoordinates() {
/* here you should not change anything */
var gRequest = null;
var postalcode = document.getElementById(postalCodeField).value;
var city = document.getElementById(cityField).value;
var street = document.getElementById(streetField).value;
var country = document.getElementById(countryField).value;
if(postalcode == '' || city == '' || street == '' || country == '' ) {
/* you can change the error message here */
alert("Proszę wypełnić pola adresowe");
}
else {
var gRequest = "http://maps.google.com/maps/geo?q=" +street+ "+" +postalcode+ "+" +city+ "+" +country+ "&output=json&key="+apiKey+"&callback=getCoordinates";
var scriptObj = document.createElement("script");
scriptObj.setAttribute("type", "text/javascript");
scriptObj.setAttribute("src", gRequest);
document.getElementsByTagName("head").item(0).appendChild(scriptObj);
}
}
function getCoordinates(data) {
switch(data.Status.code) {
case 610:
/* you can change the error message here */
alert("Api key nieprawidłowy: {googleApiKey}");
break;
case 603:
case 602:
case 601:
case 500:
/* you can change the error message here */
alert("Nie można pobrać koordynatów geograficznych dla tego adresu");
break;
case 200:
document.getElementById(latitudeField).value = data.Placemark[0].Point.coordinates[1];
document.getElementById(longitudeField).value = data.Placemark[0].Point.coordinates[0];
break;
}
}
</script>
<!-- You can change the "value" (The label on the button) here -->
<input type="button" class="button" onclick="fetchCoordinates();" value="Kliknij i pobierz dane Mapy"/>
Witam
Zrobiłem te mapy i wszystko działa, ale mam pytanie, czy wszystkie te pola przy dodawaniu wpisu muszą być widoczne ?
street
postcode
city
country
longitude
latitude
pytam bo jest to temat z przed dwóch lat, więc może się coś zmieniło ? na obecną chwilę może drażnić użytkownika jak zobaczy co ma wypełnić żeby jego wpis został opublikowany, w szczególności te dwa ostatnie pola :/ czy jest na dzień dzisiejszy możliwość żeby po wpisaniu postcode i np. miasta wyświetlała się mapa ? bez konieczności klikania w buton żeby pobierał automatycznie koordynaty...?
Czy pojawiły się nowsze rozwiązania? To musisz sprawdzić na stronie projektu.
Teoretycznie możesz ukryć pola longitude i latitude. Tylko skąd użytkownik będzie wiedział, że koordynaty zostały pobrane. :)
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!