Nosso aplicativo da web inclui recursos simples de mapeamento (atualmente apenas marcadores e sobreposições de KML em um mapa do Google incorporado). Isso funciona muito bem; a única limitação real que enfrentamos são as sobreposições de KML que vão além das restrições de tamanho e complexidade do Google para KML .
Estamos pensando em montar nosso próprio servidor (por exemplo, GeoServer ou ArcGIS Server); mas isso parece um grande passo apenas para fornecer (por exemplo) 15 MB de KML quando o limite do Google é 10 MB.
Preciso de uma verificação de integridade: existe algum meio termo entre a API fácil e gratuita do Google para sobreposições KML e a configuração do meu próprio servidor de blocos?
google-maps
kml
Caudill de ervas
fonte
fonte
Respostas:
Como você já investiu no desenvolvimento do Google Maps, sugiro inserir todos os dados no Google Fusion Tables, que podem ser analisados no mapa de maneira semelhante ao KML com desempenho incrível (consulte o aplicativo WNYC Fusion Tables ). Considere isso uma atualização para o KML sem precisar modificar drasticamente o front-end.
fonte
Você pode dividir seu KML em vários KMLs com um KML pai referenciando os kmls menores. Pelo menos, isso reduzirá o tamanho dos arquivos a um nível respeitável e permitirá que você faça referência a conjuntos de dados muito maiores como KMLs.
Honestamente, o KML é realmente bom apenas para pequenos conjuntos de dados com poucos recursos e atributos associados. Eu não chegaria perto disso como uma fonte de dados de arquivo. Se você estiver vendo esses arquivos cada vez maiores, eu procuraria outro tipo de dados ou definitivamente seguiria a rota GeoServer / MapServer para conjuntos de dados distribuídos.
fonte
Se você não investiu muito tempo na API do Google Maps, pode mudar para o OpenLayers, que possui um analisador KML do lado do cliente que pode ler seus próprios arquivos KML - veja o exemplo abaixo:
http://openlayers.org/dev/examples/kml-layer.html
No entanto, para um arquivo de 15 MB, isso provavelmente atrapalha o navegador. Provavelmente, também é muito lento nos servidores do Google quando você se aproxima do limite de tamanho do arquivo.
Existe realmente a necessidade do nível de detalhe de 15 MB ou você pode simplificar o KML sem perder muitas informações?
Você precisa acessar o vetor / geometria no lado do cliente? Esses dados podem ser exibidos como imagens?
Se nenhuma dessas opções for possível, você terá que olhar para algum tipo de software que serve mapas. Junto com o GeoServer do ArcGIS Server, você pode considerar o MapServer para servir o KML ou como um WFS. A vantagem de usar um servidor de mapas é que as solicitações retornarão apenas os dados no mapa - reduzindo o tráfego da rede e diminuindo o tempo de carregamento.
fonte
Se você estiver usando a versão 3, poderá remover todas as informações de atributo, exceto um identificador exclusivo, e solicitá-las por meio de chamadas ajax a um serviço da Web sempre que um usuário clicar em um recurso. Se você tiver mais de 10 MB de pontos, provavelmente é uma boa idéia fazer algum tipo de cluster em vez de exibir todos esses pontos de uma só vez. Além disso, você pode separar as superposições de solo em arquivos KML separados.
fonte
Você já experimentou o Google Fusion Tables. http://www.google.com/fusiontables/public/tour/index.html
Você pode carregar até 100mb de dados gratuitamente.
fonte
O MapLarge tem uma solução interessante - eles podem replicar seus dados em seus servidores e, em seguida, fazer o trabalho pesado de gerar blocos rapidamente usando seu software proprietário. Eles oferecem APIs Javascript que podem sobrepô-las nos mapas base do Google Maps, OpenLayers etc.
Confira alguns de seus exemplos - a velocidade é impressionante:
Não é gratuito, mas pode ser uma boa opção para quem não deseja que os problemas e as despesas de criar um servidor separado gerem essas camadas.
fonte