Serviço de campo, aplicações no mapa, geolocalização. Escolha do serviço cartográfico. Vista lateral do produto

Olá pessoal! Estamos desenvolvendo o Okdesk , um Helpdesk baseado em nuvem para serviço pós-venda para clientes B2B. Entre os usuários de nosso produto estão os centros de aquecimento central e automação para caixas registradoras, integradores para automação comercial, serviços operacionais de rede de varejo, empresas que atendem a imóveis comerciais e muitas outras empresas de serviços. As especificidades do serviço nessas empresas são uma grande quantidade de trabalho "nos campos": trabalho com equipamentos, manutenção de infraestrutura, trabalho de manutenção programada - tudo isso requer a presença física de um especialista na instalação. Essa circunstância impõe vários requisitos adicionais para a solução de suporte técnico, a saber: estação de trabalho móvel do engenheiro e visualização do trabalho planejado no mapa com a exibição dos funcionários mais próximos. O aplicativo móvel Okdesk para engenheiros (para iOS e Android) apareceu há muito tempo e continuamos a desenvolvê-lo ativamente. Mas a exibição de aplicativos e os funcionários mais próximos no mapa lançamos no outro dia.

imagem

Mas o artigo não se concentrará em novas funcionalidades - os interessados ​​podem obter uma conta de avaliação gratuita de 14 dias no site e conhecer o sistema por conta própria. Será sobre a escolha dos serviços de mapeamento para a implementação da funcionalidade e quais requisitos do produto devem ser apresentados a eles. Se para o seu projeto a tarefa de escolher soluções para módulos cartográficos é relevante - bem-vindo ao gato.

Questões e critérios de seleção de decisão


Então o que nós queremos? Queremos transferir o endereço para o serviço de mapa e obter a exibição desse endereço no mapa. Mas não funciona assim. Somente coordenadas podem ser exibidas no mapa. Portanto, você deve primeiro traduzir a representação em cadeia do endereço na coordenada. No jargão GIS, isso é chamado de "geocodificação".

Como fazer isso? Uma pequena digressão deve ser feita aqui. O fato é que, nas especificidades do serviço b2b, as solicitações de serviço estão vinculadas a endereços pré-fixados (objetos de serviço). Um aplicativo não pode ter um endereço arbitrário e anteriormente desconhecido. Todos os endereços são fixados na conclusão de um contrato de serviço e a adição de novos endereços não ocorre repentinamente no processo de novas solicitações. Portanto, a opção pode ser adequada para nós, quando o administrador, ao inserir o endereço no banco de dados, olha as coordenadas da estrutura correspondente nos mapas Yandex públicos e as insere manualmente no cartão do objeto de serviço:



Mas essa abordagem não nos causou entusiasmo - o usuário ficaria desconfortável (embora, repito, no nosso caso, seria uma operação única quando o objeto de serviço fosse inserido no sistema). E decidimos procurar uma maneira de preencher automaticamente as coordenadas no endereço. Existem tais serviços, resta apenas escolher. E para isso, você precisa definir os critérios de seleção. Procedemos dos seguintes requisitos:

  • A geocodificação deve funcionar nos endereços da Rússia e da ex-URSS de língua russa (o principal mercado do Okdesk atualmente). Seria ideal encontrar um único serviço de geocodificação que funcione bem em todo o mundo, mas, olhando para o futuro, direi que não o encontramos;
  • A geocodificação deve fornecer a capacidade de armazenar coordenadas em nosso banco de dados sem restrições. Não queremos realizar geocodificação sempre que precisarmos exibir esse endereço no mapa (esse requisito pode parecer estranho, mas nem todos os serviços permitem isso);
  • Custo e termos de uso razoáveis ​​(a geocodificação é uma das funções auxiliares do Okdesk e hoje não estamos prontos para pagar centenas de milhares de rublos por ano);
  • A geocodificação deve oferecer sugestões ao inserir um endereço (quando um usuário digita caracteres de endereço, o usuário recebe dinamicamente opções de seleção correspondentes aos caracteres digitados):


Quando as coordenadas do endereço já são conhecidas, elas podem ser exibidas no mapa. Tínhamos os requisitos mínimos para um serviço de mapa):

  • A relevância das informações no mapa;
  • Custo e termos de uso razoáveis.

Então, decidimos quais ferramentas precisamos e por quais critérios as escolheremos. Portanto, é hora de analisar os serviços disponíveis e escolher a configuração apropriada para resolver o problema.

Candidatos


Para selecionar uma solução, identificamos uma lista de possíveis candidatos. Eles se tornaram:

  1. Serviço dadata.ru (geocodificação);
  2. Geosserviços 2GIS (geocodificação e mapas);
  3. Serviços geográficos do Google (geocodificação e mapas);
  4. Serviços geográficos Yandex (geocodificação e mapas);
  5. Serviços do projeto OpenStreetMaps (geocodificação e mapas).

Seleção de geocodificação


Dadata.ru


O Dadata.ru possui muitos serviços úteis para trabalhar com dados. No nosso caso, estamos falando do serviço "Dicas no endereço" . Dadata tem muitas vantagens. As dicas funcionam "prontas para uso" e são tecnicamente incorporadas a produtos de terceiros. Não apenas as coordenadas, mas também outras informações são retornadas ao endereço (no nosso caso, isso não é relevante, mas pode ser útil para alguém). Os dados são "frescos" e podem ser armazenados em casa. Existe uma tarifa gratuita, limitada a 10.000 solicitações por dia, mas a tarifa paga tem um preço mais acessível (de 7.000 rublos por ano para organizações e 5.000 rublos por ano para indivíduos).

Mas há um menos: o serviço funciona apenas em endereços russos.

Geosserviços 2GIS


O 2GIS possui um grande número de serviços geográficos de referência e o geocodificação é um deles. Segundo dados oficiais, os serviços geográficos operam em 370 cidades em 9 países do mundo. Isso dá uma cobertura boa (mas pior que Dadata) para a Rússia (examinamos seletivamente - em cidades com 100 mil habitantes tudo está bem, mas em cidades menores - com 50 mil habitantes, mais frequentemente há detalhes apenas nas ruas) e uma cobertura bastante fraca para outros países da ex-URSS de língua russa (por exemplo, a cidade relativamente grande de Ekibastuz, no Cazaquistão, com mais de 130 mil residentes, está ausente no diretório 2GIS). Fora da ex-URSS, o serviço é pontual.

Existem desvantagens significativas. Em primeiro lugar, existe uma proibição de armazenar dados recebidos. I.e. sempre que necessário, exiba o endereço no mapa, você precisará fazer um pedido de coordenadas. Também não há tarifa gratuita no serviço: o pacote mínimo custa 5000 rublos por mês e inclui 5000 solicitações à API de geocodificação (ou seja, para um rublo por solicitação). Com um aumento no número de solicitações, o custo por 1 solicitação diminui. Por exemplo, se você fizer mais de 5.000.000 solicitações por mês, o custo de uma solicitação cairá para 5 copeques. Curiosamente, uma solicitação é considerada uma solicitação de dicas ao inserir um endereço e uma solicitação para as coordenadas de um endereço ao escolher as dicas (ou seja, o número mínimo de solicitações para obter coordenadas em um endereço é 2 peças). Em conjunto com o fato de que os dados de geocodificação não podem ser armazenados em casa e toda vez que você desenha um objeto no mapa, é necessário fazer uma solicitação para geocodificação, o uso de geocodificação do 2GIS resultará em uma quantidade significativa no nosso caso.

Sim, além disso, há também uma “taxa de entrada” - uma taxa única de 15.000 rublos ao conectar. Parece algum tipo de maldade :)

(As informações sobre o custo são relevantes para o primeiro semestre de 2019, mas não acho que tudo tenha mudado drasticamente desde a nossa imersão nas possibilidades e condições do serviço).

Serviços geográficos do Google


Os serviços geográficos do Google são mesclados com a marca Google Maps Platform . Entre eles, há também geocodificação com dicas. O site reivindica cobertura em 99% dos endereços do nosso planeta. Não verificamos 99%, mas verificamos apenas a Rússia. E, digo-lhe, a qualidade e a relevância dos dados na Rússia deixam muito a desejar. Por exemplo, de acordo com o Google, o complexo residencial em que moro não existe (Moscou, mais de 10 milhões de habitantes), embora as primeiras casas tenham sido comissionadas há mais de três anos. Mas o “complexo residencial” em que nasci e cresci (Penza, mais de 500 mil habitantes) ainda existe, embora, na realidade, ele já tenha sido enviado para demolição por 4 anos. Como uma pequena desculpa para a Plataforma do Google Maps, você pode adicionar que os dados nos panoramas são muito mais relevantes - eles têm minha casa atual e minha casa "mãe" é assim:



Isso pode encerrar a revisão de geocodificação do Google - com a cobertura e a relevância descritas, não é aplicável para nossos propósitos. Mas, para ser sincero, iniciamos o estudo do serviço do outro lado: com condições e preços. Portanto, escreveremos sobre eles de qualquer maneira.

Portanto, as condições são bastante humanas. Todas as solicitações são cobradas: de 4 a 5 dólares por 1.000 solicitações de geocodificação, e as dicas são cobradas separadamente - 2,83 dólares por 1000 solicitações. Além disso, o Google cobra mensalmente 200 dólares virtuais na conta, que pode ser usada para pagar pelos serviços da plataforma.

O Google ainda permite que você salve os resultados da geocodificação em casa. Mas você só pode exibi-los em um mapa se esse mapa for o Google Maps, conforme explicitamente declarado na primeira seção do documento de Políticas da API de geocodificação :
Exibindo resultados da API de geocodificação
Você pode exibir os resultados da API de geocodificação em um mapa do Google ou sem um mapa. Se você deseja exibir os resultados da API de geocodificação em um mapa, esses resultados devem ser exibidos em um mapa do Google. É proibido usar dados da API de geocodificação em um mapa que não é um mapa do Google.

É uma pena que nem todos os colegas no processo de leitura da decisão leiam informações legais. Com essa abordagem, você pode substituir facilmente seus clientes, dando a eles a oportunidade de receber resultados de geocodificação do Google, mas exibir objetos, por exemplo, no OpenStreetMaps.

Serviços geográficos Yandex


O serviço Yandex para geocodificação é chamado Geocoder . Excelente cobertura na Rússia - existem endereços mesmo para assentamentos com alguns milhares de habitantes. Para os países da ex-URSS de língua russa, a cobertura não é pior. A cobertura global é simbólica. A relevância dos dados é alta.

Em geral, tudo seria ótimo se não fosse pelos termos de uso de projetos comerciais (para não comerciais - de graça, com várias restrições).

Os termos de uso para projetos comerciais são os seguintes. O custo mínimo é de 120.000 rublos por ano e, a essa taxa, o limite diário é de 1.000 solicitações. Com um aumento no número de solicitações diárias, o custo por 1 solicitação cai. Em geral, o custo não é chocante se não houver um, MAS: se você quiser manter os dados de geocodificação em casa, outros 500.000 rublos serão adicionados ao custo da tarifa anual (enfatizo: não uma vez, mas anualmente). Como resultado, o "limite de entrada" para nós começa com 620.000 rublos por ano, com um limite de 1000 solicitações por dia. Essas coisas.

Serviços Geográficos OpenStreetMaps


O OpenStreetMaps (OSM) é um projeto de mapeamento da web sem fins lucrativos, que visa criar um mapa geográfico livre e gratuito do mundo pela comunidade de participantes - usuários da Internet. (c) Wikipedia.

O OSM possui um serviço de geocodificação chamado Nominatim . Os dados são mantidos e atualizados "pelo mundo inteiro". Em geral, os dados são relevantes, mas a cobertura não é profunda - na Rússia, nas cidades com uma população de 20 a 30 mil pessoas, o detalhamento do número da casa geralmente não está disponível.

Termos de uso - grátis. Os dados podem ser armazenados em casa, os dados podem ser usados ​​de qualquer forma legal. Em geral, como uma fonte auxiliar para geocodificação - será suficiente! (spoiler: decidimos usá-lo nesse status).

Tabela dinâmica de geocodificação


E agora tudo é o mesmo, mas brevemente na tabela:
Dadata2GISGoogleYandexOSM
DicasExisteExisteExisteExisteNão
CoberturaRússia (muito bom).Rússia (cidades grandes e médias), ex-URSS (cidades grandes).A Rússia e a ex-URSS são medíocres e não são relevantes. Provavelmente nos "países desenvolvidos" é bom.Rússia e ex-URSS (muito bom).O mundo inteiro, mas para cidades pequenas, muitas vezes, os detalhes são pobres.
Uso de dadosPode ser armazenado e usado livremente.Você não pode armazenar em casa, mas depois de receber os dados, você pode usá-los livremente.Você pode mantê-lo por conta própria, mas só pode exibi-lo nos mapas se for o Google Maps.+ 500 000 rublos por ano, se você planeja manter os dados em casa.Grátis
CustoExiste uma tarifa gratuita com fronteiras amplas, uma tarifa paga de 7.000 rublos por ano.15.000 rublos únicos + de 5.000 rublos por mês.US $ 4-5 para 1000 solicitações. Mas dentro de 200 $ / mês até agora (a partir de outubro de 2019) gratuitamente.De 120.000 rublos por ano + 500.000 rublos por ano, se você planeja manter os dados em casa.De graça

Escolha do serviço de mapa


Um pouco mais alto, examinamos os prós e contras de vários geocodificadores. Ao escolher os cartões, fomos guiados pelo fato de que os cartões devem ser relevantes, a cobertura é boa e o custo e os termos de uso - levantamento. Como a relevância e a cobertura dos mapas correspondem totalmente à relevância da geocodificação (e não faz sentido duplicar essas informações), na visão geral dos mapas, focaremos apenas o custo e os termos.

Mapa 2GIS


As condições para o uso de cartões da 2GIS são bastante leais. O faturamento não se baseia no número de solicitações / renderização do cartão, mas a um custo fixo. O custo consiste em uma "taxa de entrada" - uma taxa única de 15.000 rublos - e uma taxa de assinatura anual de 60.000 rublos.

Google maps


Como no caso da geocodificação, o uso de mapas do Google é baseado no número de solicitações (request = display map). Mas o custo da solicitação depende de qual mapa você deseja exibir e onde.

Por exemplo, se você precisar exibir um mapa estático com as características e etiquetas especificadas (ou seja, quando você solicitar um mapa, o Google retornará uma imagem da peça em questão com as etiquetas especificadas) - isso custará US $ 2 por 1.000 solicitações. Se você usa o mesmo formato para aplicativos no Android - de graça. A propósito, para aplicativos móveis, os mapas do Google são amplamente gratuitos. Mas não se iluda: o Google pode a qualquer momento alterar os termos de uso unilateralmente. Por exemplo, em 2018, o Google aumentou o custo do uso de mapas na interface da web em 14 vezes.

Para nossos cenários de uso (mapas dinâmicos na interface da web), o custo por 1.000 impressões de cartões é de US $ 7. Ao exceder o número de impressões de 100.000.000 (cem milhões) por mês, o custo "cai" para US $ 5,6 por 1.000 impressões.

Como a "conta pessoal" da empresa é a mesma para todos os serviços da Google Maps Platform, você pode pagar pelo uso de cartões do Google dos mesmos US $ 200 virtuais que o Google cobra na sua conta todos os meses.

Mapas de Yandex


Se você tem um projeto gratuito, o acesso aos mapas não exige o registro de usuários no projeto e você faz menos de 25.000 chamadas para cartões por dia, e pode usar o Yandex.Maps gratuitamente. Caso contrário, apenas o uso comercial estará disponível para o seu projeto. A solicitação que para o geocoder, que para os cartões - é cobrada da mesma forma. A assinatura anual começa em 120.000 rublos por ano (estão incluídos 1000 pedidos por dia, 120 rublos para cada 1000 pedidos subsequentes acima do limite diário). O limite de solicitações para geocodificador e mapas é geral.

E se você deseja manter os resultados das consultas em casa - você precisa pagar mais de 500.000 rublos anualmente.

Mapas de ruas abertos


Serei breve: livre e gratuito. Mas há uma nuance - às vezes as cartas na Rússia diminuem.

upd: há mais uma nuance - se você usa os serviços online do OSM (e não os implanta em seus servidores), existem restrições informais expressas na redação:
O uso pesado (por exemplo, distribuir um aplicativo que usa blocos do openstreetmap.org) é proibido sem a permissão prévia dos Administradores do Sistema. Veja abaixo alternativas.

I.e. Os serviços OSM não são adequados para grandes projetos com uso intensivo do mapa, mas você pode implantá-los em seus servidores e usá-los sem restrições.

Tabela Resumo


2GISGoogleYandexOSM
Relevância e coberturaRússia (cidades grandes e médias), ex-URSS (cidades grandes).A cobertura da Rússia e da ex-URSS é medíocre e não é relevante.Rússia e ex-URSS (cobertura muito boa e alta relevância).O mundo inteiro, mas para cidades pequenas, muitas vezes, os detalhes são pobres.
Custo e condições15.000 rublos únicos + 60.000 rublos por ano.US $ 7 por 1.000 solicitações. Mas dentro de 200 $ / mês até agora (a partir de outubro de 2019) gratuitamente.De 120.000 rublos por ano (o preço inclui o uso de geocodificação, o número total de solicitações é de + 500.000 rublos por ano, se você planeja manter os dados em casa.Grátis e grátis.

O que escolhemos?


Geocodificação


Para geocodificação, escolhemos uma solução híbrida do serviço Dadata.ru e o serviço Nominatim do OpenStreetMaps. A geocodificação funciona da seguinte maneira.

Quando você digita o endereço, o usuário exibe prompts do serviço Dadata.ru. Se os prompts contiverem o que o usuário estava procurando, ele clicará no prompt, o endereço selecionado será exibido no mapa e as coordenadas serão exibidas abaixo da representação em texto do endereço (recebido do Dadata.ru). Vídeo do Youtube .

Se o endereço digitado pelo usuário no serviço Dadata.ru estiver ausente, o usuário poderá pressionar Enter e a solicitação do endereço irá para o serviço Nominatim. Se o endereço for encontrado nos resultados da pesquisa, o usuário clica no endereço, o endereço é exibido no mapa e as coordenadas são exibidas na representação de string do endereço. Vídeo do Youtube .

E, finalmente, se o endereço não for encontrado no Dadata.ru ou no Nominatim, o usuário pode simplesmente pegar e indicar um ponto no mapa - e as coordenadas do ponto especificado serão adicionadas à representação de string inserida no endereço. Vídeo do Youtube .

Postais


Eu serei breve. Escolhemos o OpenStreetMaps. Existem muitas vantagens, não há desvantagens significativas.

Vídeo bônus: como os cartões funcionam no Okdesk


Mas neste vídeo você pode ver como a exibição de aplicativos no mapa funciona com a atribuição de responsabilidade ao funcionário mais próximo no Okdesk:


A propósito, registre uma conta de teste no site e tente por 14 dias gratuitamente.

Source: https://habr.com/ru/post/pt473568/


All Articles