polymaps & poly… polígonos

9

Eu tenho jogado com o Bing Maps + Polymaps recentemente.

Tornou-se aparente que o Bing é o único recurso de mapeamento disponível para o Polymaps que inclui imagens de satélite . Isso é verdade?

Estou tentando desenhar muitos polígonos de tamanhos diferentes em um mapa e preenchê-los com cores diferentes, dependendo do que eles representam. Além disso, quero que cada um desses polígonos seja clicável.

Entendo que, para carregar dados geográficos em um mapa com Polymaps, você usa .features () ou .url () como parte do objeto geoJSON.

Eu tenho .features () funcionando, mas usando essa função, os dados do polígono devem ser incorporados ao próprio arquivo javascript - como em:

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"}
    }

        ]));

Quero que esses dados realmente venham de um banco de dados e não fiquem estaticamente no próprio javascript - o que me diz que devo usar o método .url () - correto? E se eu usar o método .url (), devo passar um modelo de URL válido que retorne geoJSON ... Como faço para fazer isso com meus próprios dados privados? Eu estou familiarizado com PHP e mySQL - devo usar um sistema de banco de dados espacial?

E como um servidor de mapas como o MapServer, GeoServer e outros se encaixam nisso? Não foi possível configurar um script PHP para ler esses modelos da variável $ _GET, consultar um banco de dados e retornar a sequência geoJSON adequada?

Eu realmente só preciso de alguma inspiração, algumas dicas para me colocar no caminho e matar algumas das dúvidas que tenho. Eu me peguei pesquisando a troca de pilhas e pesquisando tudo, desde servidores de mapas a bancos de dados geoespaciais - você escolhe, provavelmente já li sobre isso, mas estou lutando para juntar as peças.

Pergunta longa, mas uma vez esclarecidas essas coisas, eu deveria estar em uma posição muito melhor.


Podemos remover polígonos da equação se houver substitutos.

Em resumo, pretendo pegar um grande número de polígonos de um banco de dados (PostGIS?) De todas as formas, tamanhos, cores e transparências, e plotá-los em um mapa. É basicamente isso! O Polymaps possui gráficos vetoriais + Eu pensei que conseguir isso em qualquer lugar seria trivial, considerando o código acima ... podemos descartá-lo se você tiver outras idéias. Qual é a melhor solução? Meu único requisito comercial é que as Imagens de Satélite sejam ativadas ... O que significa que estamos trabalhando com o Bing ou o Google.

Jordan Arseno
fonte

Respostas:

8

Se você está falando sobre o GeoJSON, pode usar qualquer tipo de banco de dados e servidor back-end, desde que:

1) Espera receber URLs no estilo TMS ou /{zoom}/{x-coord}/{y-coord}.json e pode converter Z / X / Y em uma caixa delimitadora.

(Dê uma olhada em algo como Tilestache (.org) se você quiser / precisa ver a matemática envolvida nesse processo.)

2) Retorna GeoJSON.

Para estilizar e adicionar bits interativos aos resultados dos dados, você desejará definir uma função "load" usando o método on () da camada. Por exemplo:

var l = org.polymaps.geoJson ();
l.url ("http://example.com/tiles/{Z}/{X}/{Y}.json");
l.on ("carga", função (e) {...});

O site da Polymaps possui muita documentação e código de exemplo, mas também incluí os slides e o código de exemplo de um workshop da Polymaps que fiz recentemente:

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

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

Felicidades

user2016
fonte
Obrigado Aaron, os links que você postou são realmente indispensáveis. Fiz o download dos arquivos para análise posterior. Vou me referir a eles quando estiver no estágio de interatividade. Não tenho certeza se o Tilestache é algo que eu preciso, porque o Bing está sendo cuidado pelo Bing, não? Os dados personalizados que fornecerei são dados de polígonos, não qualquer tipo de imagem .png, .jpg, etc. Existe alguma chance de eu ter um pico em ./flickr.json? Link perdido. Saúde e obrigado novamente.
Jordan Arseno
Encontrei-o na raiz do workshop / 005-data /, obrigado!
Jordan Arseno
2

Ok, então aqui está o negócio - This Blog Post

Limpo TUDO. É uma leitura obrigatória para quem joga com Polymaps. Encontrei-o via Henry no Reddit

Aaron mencionou o uso do TileStache e, de fato ... Essa é a chave, eu simplesmente não vi como - O post acima é bastante informativo ao usar o TileStache. Grande vitória.

Jordan Arseno
fonte
Você notou que queria que cada elemento fosse clicável, como conseguiu isso? Eu tenho meu mapa em execução, mas estou contra uma parede ao tornar elementos clicáveis ​​no mapa.
Olá Erik, se você baixar e extrair o plug-in de polymaps para o servidor da Web, poderá acessar um exemplo perfeito em: localhost / polymaps / examples / tipsy / tipsy.html - Verifique a fonte desse cara. Na verdade, coloquei esse projeto de mapeamento no modo de hiato temporário e ainda não consegui pontos de dados clicáveis, mas é exatamente por aqui que eu começaria. Muito bem sucedida!
Jordan Arseno 06/06
@JordanArsenault o link "esta postagem no blog" não está mais funcionando - você baixou as informações? Obrigado
Stephen Lead
ei Stephen, de fato, a postagem do blog está fora do ar e eu não tenho uma cópia baixada. No entanto, o criador do goalfinch pode ser encontrado aqui: linkedin.com/in/hanskuder ... Por favor, se você encontrar o conteúdo, avise-me e eu corrigirei os links - ou fique à vontade para editar este post :)
Jordan Arseno