Fórum nápovědy

Seznam

Hromadný import adres a zobrazení "špendlíků" na mapě

Lukáš Baumgartl

2.8.2019 v 13:33

Dobrý den,
mohu nějak nad mapami zobrazit seznam adres?

Mám v XLS souboru přibližně 1500 adres a k nim doplňující informace. Chtěl bych je zobrazit v mapě jako "špendlíky" na které je možné kliknout a tím si vypsat doplňující informace . Existuje nějaká možnost importu?

Děkuji za pomoc.

Jiří Čížek

6.8.2019 v 23:19

XLS převést třeba do json a pak už načíst standardním způsobem přidávání markerů a card na mapu podle wieportu. Nejříve by bylo nejlepší k adresám přiřadit GPS souřadnice.
To se dá prohnat geokódováním s tím, že potřebuješ zajistit přidání GPS k adrese. Možná některé záznamy bude nutno přiřadit ručně.
Takže postup:
1) přeuložit adresy do něčeho rozumného s čím se bude dobře dělat (json)
2) doplnit GPS geocodingem automaticky ajaxem
3) doplnit u těch, které nebyly nalezeny ručně
4) načítat podle viewportu mapy dynamicy špendlíky


------------
//načíst je ajaxem
var adresy = [
{ ulice: "Radlická 21", mesto: "Praha 5", GPS: ""},
{ ulice: "Skřivánčí 3", mesto: "Aš", GPS: ""},
{ ulice: "Pražská 18", mesto: "Úvaly u Prahy", GPS: ""}
];

//projedeme vsechny adresy
for (var key in adresy){
var query = adresy[key].ulice + ", " + adresy[key].mesto;

console.log(query);
new SMap.Geocoder(query, odpoved);

}
//https://api.mapy.cz/view?page=geocoding
function odpoved(geocoder) { /* Odpověď */
if (!geocoder.getResults()[0].results.length) {
alert("Tohle neznáme.");
return;
}

var vysledky = geocoder.getResults()[0].results;
var data = [];
while (vysledky.length) { /* Zobrazit všechny výsledky hledání */
var item = vysledky.shift()
data.push(item.label + " (" + item.coords.toWGS84(2).reverse().join(", ") + ")");
}
alert(data.join("\n"));
//a tady ajaxem uložit do souboru adres k právě načtené adese
}

</code>

George Hubec

18.10.2019 v 13:16

Snazim se ziskane souradnice x,y dostat do php pomoci Ajaxu, ale nedari se mi nic predat do php.
Ajax moc neznam, kde muze byt chyba?


<script type="text/javascript">
var m = new SMap(JAK.gel("m"));
m.addControl(new SMap.Control.Sync());
m.addDefaultLayer(SMap.DEF_BASE).enable();
m.addDefaultControls();

new SMap.Geocoder("Belehradska 576, Pardubice", function(geocoder) {
var results = geocoder.getResults()[0].results;
var data = [];
var r1 = results[0].coords;

var r1 = JSON.stringify(r1);

//document.writeln(r1);
});


//-------------------------------------------------------------------
$.ajax({
url: 'te1.php',
data: r1,
dataType : 'text',
type: 'POST',
datatype: 'JSON',
});

//--------------------------------------------------------------------

</script>


<?php

$obj = json_decode($_POST["dataString"]);

echo "X|$obj->x|";

?>

Nový dotaz

Přiložené přílohy

    Zbývá 12MB (z 12MB)

    Hromadný import adres a zobrazení "špendlíků" na mapě

    Přiložené přílohy

      Zbývá 12MB (z 12MB)