polymaps e poly… poligoni


9

Di recente ho giocato con Bing Maps + Polymaps.

È diventato evidente che Bing è l'unica risorsa di mappatura disponibile per Polymaps che include immagini satellitari . È vero?

Sto cercando di realizzare disegnando molti poligoni di dimensioni diverse su una mappa e riempiendoli di colori diversi a seconda di ciò che rappresentano. Inoltre, voglio che ciascuno di questi poligoni sia cliccabile.

Comprendo che per caricare i dati geografici su una mappa con Polymaps, utilizzare .features () o .url () come parte dell'oggetto geoJSON.

Ho .features () funzionante, ma usando questa funzione i dati poligonali devono essere incorporati nel file javascript stesso - come in:

map.add(po.geoJson()
        .features([
    {
      "geometry": {
        "coordinates": [[
[[-63.599925935268395,44.64018531837119],[-63.599789142608664,44.640219671024646],[-63.59973818063736,44.6401452402498],[-63.599877655506134,44.64010707058464],[-63.599925935268395,44.64018150140844]],

[[-63.59986692667008,44.639874235083376],[-63.59975695610047,44.63991431339196],[-63.599697947502136,44.63981507181532],[-63.5998159646988,44.639782627416906],[-63.59986424446105,44.6398723265918]]
        ]],
        "type": "MultiPolygon"
      },
      "type": "Feature",
      "id": "beat:05X",
      "properties": {"name": "05X"}
    }

        ]));

Voglio che questi dati provengano effettivamente da un database e non si trovino staticamente nel javascript stesso - il che mi dice che dovrei usare il metodo .url () invece - corretto? E se utilizzo il metodo .url (), devo passare un modello URL valido che restituisca geoJSON ... Come posso procedere con i miei dati privati? Conosco PHP e mySQL - devo usare invece un sistema di database spaziale?

E come si inserisce un server di mappe come MapServer, GeoServer e altri? Non posso impostare uno script PHP per leggere questi modelli dalla variabile $ _GET, interrogare un database e restituire la stringa geoJSON corretta?

Ho solo bisogno di un po 'di ispirazione, di alcuni suggerimenti per farmi strada e uccidere alcuni dei dubbi che ho. Mi sono ritrovato a scavare nello scambio di stack e cercare su google tutto dai server delle mappe ai database geo-spaziali - tu lo chiami, probabilmente ne ho letto, ma sto facendo fatica a mettere insieme i pezzi.

Domanda a lungo termine ma una volta chiarite queste cose, dovrei essere in una posizione molto migliore.


Possiamo rimuovere polymap dall'equazione se ci sono sostituti.

In sintesi, sto cercando di prendere un gran numero di poligoni da un database (PostGIS?) Di tutte le diverse forme, dimensioni, colori e trasparenze e tracciarli su una mappa. Questo è tutto! Polymaps ha una grafica vettoriale + Ho pensato che portarlo in viaggio sarebbe stato banale dato il codice sopra ... possiamo scartarlo se hai altre idee. Qual è la soluzione migliore? Il mio unico requisito aziendale è che le immagini satellitari siano abilitate ... Il che significa che stiamo lavorando con Bing o Google.

Risposte:


8

Se stai parlando di GeoJSON puoi utilizzare qualsiasi tipo di database e server back-end, a condizione che:

1) Si aspetta di ricevere URL di stile TMS o /{zoom}/{x-coord}/{y-coord}.json e può convertire Z / X / Y in un rettangolo di selezione.

(Dai un'occhiata a qualcosa come Tilestache (.org) se vuoi / hai bisogno di vedere la matematica coinvolta nel farlo.)

2) Restituisce GeoJSON.

Per lo stile e l'aggiunta di bit interattivi, ai risultati dei dati è necessario definire una funzione di "caricamento" utilizzando il metodo on () del layer. Per esempio:

var l = org.polymaps.geoJson ();
l.url ( "http://example.com/tiles/{Z}/{X}/{Y}.json");
l.on ("load", funzione (e) {...});

Il sito Polymaps ha molta buona documentazione e codice di esempio, ma ho anche incluso le diapositive e il codice di esempio di un seminario Polymaps che ho fatto di recente:

http://www.aaronland.info/talks/where2011/

http://www.aaronland.info/talks/where2011/workshop

Saluti


Grazie Aaron, i link che hai pubblicato sono davvero indispensabili. Ho scaricato i file per la successiva revisione, mi riferirò a loro quando sarò nella fase di interattività. Non sono sicuro che Tilestache sia qualcosa di cui ho bisogno perché la piastrellatura vera e propria è curata da Bing, no? I dati personalizzati che fornirò sono dati poligonali, non alcun tipo di immagine .png, .jpg, ecc. C'è qualche possibilità che io possa prendere un picco su ./flickr.json? Collegamento mancante. Saluti e grazie ancora.
Jordan Arseno,

L'ho trovato nella radice di workshop / 005-data /, grazie!
Jordan Arseno,

2

Ok, quindi ecco l'affare: questo post sul blog

Azzerato TUTTO. È una lettura obbligata per chiunque giochi con Polymaps. L'ho trovato tramite Henry su Reddit

Aaron ha menzionato l'uso di TileStache e in effetti ... Questa è la chiave, non ho visto come - Il post di blog sopra è abbastanza informativo nell'uso di TileStache. Grande vincita.


Hai notato che volevi fare clic su ogni elemento, come hai fatto? Ho la mia mappa in esecuzione, ma sono contro un muro per rendere gli elementi cliccabili nella mappa.

ciao Erik, se scarichi ed estrai il plugin polymaps sul tuo server web, puoi accedere ad un esempio perfetto su: localhost / polymaps / esempi / tipsy / tipsy.html - Controlla la fonte su questo ragazzo. A dire il vero, ho messo questo progetto di mappatura in modalità di pausa temporanea e non ho ancora raggiunto punti dati cliccabili, ma è esattamente qui che vorrei iniziare. Ti auguro il meglio!
Jordan Arseno,

@JordanArsenault il link "questo post sul blog" non funziona più - ti è capitato di scaricare le informazioni? Grazie
Stephen Lead,

hey Stephen, infatti, il Blog Post è ora inattivo e non ho una copia scaricata. Tuttavia, il creatore di goalfinch può essere trovato qui: linkedin.com/in/hanskuder ... Per favore, se trovi il contenuto, fammi sapere e aggiusterò i collegamenti - o sentiti libero di modificare questo post :)
Jordan Arseno,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.