konto usunięte

Temat: Skrypt wyświetla tylko 10 markerów

Witam.

Nie wiem dlaczego ale skrypt wyświetla tylko 10 pierwszych markerów. Przy 11-tym błąd "Address not found" tak jakby nie odczytywał danych. Korzystam z 'getLatLng' czy ona ma ograniczenia? A może to ograniczenia API, o których nie doczytałem?

[edyta]
A może to problem z tym, że 'getLatLng' jest asynchroniczny?

Oto skrypt


var geodecoder = null;
var map = null;
function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("tmap"));
var MapTypes = map.getMapTypes();
MapTypes[0].getName= function() { return "Mapa";}
MapTypes[1].getName = function() { return "Satelitarna";}
MapTypes[2].getName = function() { return "Hybrydowa";}
map.addControl(new GMapTypeControl());

map.addControl(new GLargeMapControl());
map.addControl(new GOverviewMapControl());
map.addControl(new GMapTypeControl());
// map.enableScrollWheelZoom();
map.enableContinuousZoom()

map.hideControls();
GEvent.addListener(map, "mouseover", function(){map.showControls();});
GEvent.addListener(map, "mouseout", function(){map.hideControls();});

map.setCenter(new GLatLng(52.173931692568,18.8525390625),7);


geocoder = new GClientGeocoder();
// Zoom <15, 17> - szczegolowe punkty dla przyblizenia
showMarkerRcm("03-075 Warszawa Polska", 12, 17);
showMarkerRcm("05-190 Nasielsk Polska", 12, 17);
showMarkerRcm("06-460 Grudusk Polska", 12, 17);
showMarkerRcm("11-600 WĘGORZEWO Polska", 12, 17);
showMarkerRcm("21-002 Jastków Polska", 12, 17);
showMarkerRcm("25-394 Kielce Polska", 12, 17);
showMarkerRcm("42-233 Czestochowa Polska", 12, 17);
showMarkerRcm("42-583 Bobrowniki Polska", 12, 17);
showMarkerRcm("55-095 Długołęka Polska", 12, 17);
showMarkerRcm("61-329 Poznań Polska", 12, 17);
showMarkerRcm("63-500 Ostrzeszów Polska", 12, 17);
showMarkerRcm("64-100 Leszno Polska", 12, 17);
showMarkerRcm("72-006 Szczecin Polska", 12, 17);
showMarkerRcm("82-410 Stary Targ Polska", 12, 17);
showMarkerRcm("82-550 Prabuty Polska", 12, 17);
showMarkerRcm("88-150 Kruszwica Polska", 12, 17);
showMarkerRcm("89-620 Chojnice Polska", 12, 17);
showMarkerRcm("98-337 Strzelece Wielkie Polska", 12, 17);
showMarkerRcm("98-338 Sulmierzyce Polska", 12, 17);
showMarkerRcm("99-300 Kutno Polska", 12, 17);
}
}

function showMarkerRcm(address) {
geocoder.getLatLng(address,
function(point) {
if (!point) {
alert(address + " not found");
} else {
//sleep(1000);
//map.setCenter(point, 11);
var infoTabs = address;

var marker = new GMarker(point,iconRcm());
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(infoTabs);
}
);
map.addOverlay(marker);
}
}
);
}
function iconRcm() {
var icon = new GIcon();
icon.image = "http://maps.google.com/mapfiles/kml/pal2/icon12.png";
icon.shadow = "http://maps.google.com/mapfiles/kml/pal2/icon12s.png";
icon.iconAnchor = new GPoint(6, 20);
icon.infoWindowAnchor = new GPoint(5, 1);
return icon;
}

Robert B. edytował(a) ten post dnia 22.08.10 o godzinie 00:57

konto usunięte

Temat: Skrypt wyświetla tylko 10 markerów

Mapa wyświetla różną ilość markerów. 10 - to najczęściej wyświetlana liczba ale zdarza się 12 a nawet kilka razy "udało się" 19.

Użycie GMarkerManager niczego nie zmienia.

konto usunięte

Temat: Skrypt wyświetla tylko 10 markerów

Błąd prawdopodobnie wynika ze specyfiki getLatLng() . Jeśli ktoś ma jakiekolwiek doświadczenia z getLatLng() z chętnie bym o nich usłyszał.

Problem rozwiązałem zapisując lat,lng nowych pozycji do bazy. Przy następnym ładowaniu mapy dane pobierane są z bazy a dla nowych pozycji z getLatLng() i zapisywane do bazy.

Jest to połowiczne rozwiązanie ale dla moich potrzeb wystarczające.

Temat: Skrypt wyświetla tylko 10 markerów

Moze przejscie na API V3 rozwiazaloby problem. Google twierdzi:
"Note: The Google Maps Geocoding API Version 2 has been officially deprecated as of March 8, 2010. The V2 API will continue to work as per our deprecation policy, but we encourage you to migrate your code to the new Geocoding API."

Przy geocoderze v3 pewnie moglbym jakos pomoc.Tomek Rodakiewicz edytował(a) ten post dnia 26.08.10 o godzinie 00:34

konto usunięte

Temat: Skrypt wyświetla tylko 10 markerów

Tomek Rodakiewicz:
Moze przejscie na API V3 ...

Tak - rozpatrywałem taką konieczność tym bardziej, że ...
Google twierdzi:
"Note: The Google Maps Geocoding API Version 2 has been officially deprecated as of March 8, 2010. The V2 API will continue to work as per our deprecation policy, but we encourage you to migrate your code to the new Geocoding API."

... ale "dziś" na api3 dla mnie za wcześnie.

Dziękuję za odzew.
Maciej Marczewski

Maciej Marczewski Pozytywnie zakręcony
na punkcie polskiej
turystyki.

Temat: Skrypt wyświetla tylko 10 markerów

Witam.

Sprawdź, czy nie wynika to z limitów geokododowania. Z tego co widzę, to jeden po drugim geokodujesz kilkanaście adresów.

Jeśli to o to chodzi, to spróbuj dodać setTimeout i przykładowo geokodować co 3 sekundy. A jak nie to zawsze łatwiej jest sobie gdzieś zapisać te dane, jeśli cały czas z nich korzystasz.

Spójrz też tutaj: http://www.goldenline.pl/forum/1336754/regulamin-map-g...

konto usunięte

Temat: Skrypt wyświetla tylko 10 markerów

Maciej Marczewski:
Witam.
...

Cóż nowego wniosłeś do tematu?

Czytałeś choćby całość? Widziałeś, że dekoduje różną liczbę adresów (czyli to nie problem z ograniczeniami)? Czy raczej Twoją intencją była zwykła autopromocja bloga?

[edyta]
Maciej Marczewski:
Witam.
... A jak nie to zawsze łatwiej jest sobie gdzieś zapisać te dane, jeśli cały czas z nich korzystasz.

No tak - teraz wiem, że nie czytałeś - czyli autopromocja bloga.Robert B. edytował(a) ten post dnia 30.08.10 o godzinie 20:25
Maciej Marczewski

Maciej Marczewski Pozytywnie zakręcony
na punkcie polskiej
turystyki.

Temat: Skrypt wyświetla tylko 10 markerów

Witam,

Zaskoczyła mnie ta reakcja szczerze mówiąc i nie rozumiem oburzenia.
Robert B.:
Maciej Marczewski:
Witam.
...

Cóż nowego wniosłeś do tematu?

Czytałeś choćby całość? Widziałeś, że dekoduje różną liczbę adresów (czyli to nie problem z ograniczeniami)? Czy raczej Twoją intencją była zwykła autopromocja bloga?

Panie Robercie limit geokodowania właśnie wynika z geokodowania różnej liczby adresów i pojawia się gdy zbyt szybko odczytywane są dane, które posiadają różne adresy. Geokoder ma wbudowaną pamięć ostatnich adresów i właśnie w takich sytuacjach jak Pana limity mogą występować.

10 to jest typowa liczba, która może oznaczać limit jednoczesnych zapytań. Nadal podtrzymuję, że może to być z tym związane.

[edyta]
Maciej Marczewski:
Witam.
... A jak nie to zawsze łatwiej jest sobie gdzieś zapisać te dane, jeśli cały czas z nich korzystasz.

No tak - teraz wiem, że nie czytałeś - czyli autopromocja bloga.

Jeśli mamy rozmawiać poza tematem to proszę bardzo: blogi są dla ludzi i po to, aby nie powtarzać w kółko tego samego. Posiadanie bloga nie ma dla mnie znaczenia autopromocyjnego - raczej do zbierania informacji, które są potrzebne początkującym użytkownikom takim jak Pan.

Pozdrawiam i życzę udanego dnia.

MaciejMMaciej Marczewski edytował(a) ten post dnia 06.09.10 o godzinie 21:24

Następna dyskusja:

Google Maps - centrowanie m...




Wyślij zaproszenie do