Se você está nessa página, nós assumimos que:

Você já possui uma chave de acesso.

Tenha conhecimentos de HTML e Javascript.

Acesso seguro via https

Para efetuar acesso a API Javascript utilizando conexão segura é preciso utilizar o prefixo “secure”.

Exemplo de endereço de chamada: https://secure.services.maplink.com.br/maplinkapi2/api.ashx

Para utilizar as entidades e operações disponíveis na API Javascript é necessário inserir o codigo de referência no cabeçalho de uma página HTML (HyperText Markup Language).

O trecho de código para refenciar a API Javascript permitir fornecer alguns parâmaetros, sendo estes descritos em detalhes a seguir:

/

Nome do parâmetro Descrição
key Indica o código de acesso (token)
v Indica o código da versão da API

O exemplo de código a seguir demonstra um modelo básico de documento HTML para utilização das funcionalidades a serem descritas ao longo deste artigo.

Os códigos de exemplo descritos ao decorrer desta seção, com o objetivo de demonstrar uma implementação para uma determinada funcionalidade, utiliza a estrutura da página HTML de exemplo citada anteriormente.

Os exemplos de consumo dos serviços SOAP foram implementados seguindo uma página HTML com modificações, incluindo a div “divInfo” e sem contar com a div destinada a exibição de um mapa. O exemplo a seguir demonstra o modelo HTML adotado.

Obtendo dados do serviço AddressFinder (Geocodificação)

O serviço “AddressFinder” disponibiliza através de suas operações as funcionalidades de geocodificação, geocodificação reversa ou por cruzamentos, busca por informações de uma cidade e obtenção de um mapa renderizado a partir de um endereço informado. A documentação para este serviço pode ser acessada através deste endereço.

As demais operações seguem a mesma estrutura do serviço AddressFinder, as quais estão detalhadas na página Web Services – Geocodificação.

Obtendo dados do serviço Route (Rotas)

O serviço “Route” disponibiliza através de suas operações as funcionalidades de geração de rotas simples, múltiplas e com percursos alternativos, além de obter dados de custos com o trajeto da rota e sumarizados, além de opção para renderização de mapa a partir de uma roteirazão entre pontos de parada. A documentação para este serviço pode ser acessada através deste endereço.

  • Dados detalhados por rota – Operação “GetRoute”

    Visualizar código completo

  • Dados resumidos por rota – Operação “GetRouteSummary”

As demais operações seguem a mesma estrutura do serviço Route, as quais estão detalhadas na página WebServices – Rotas.

O serviço AddressFinder disponibiliza através de suas operações as funcionalidades de geocodificação, geocodificação reversa ou por cruzamentos, busca por informações de uma cidade e obtenção de um mapa renderizado a partir de um endereço informado.

O que é Geocodificação?

Geocodificação é o processo de conversão de um determinado endereço (por exemplo, “Avenida Paulista, 1000 – São Paulo – SP”) em coordenadas geográficas (por exemplo, latitude “-23.606969? e longitude “-46.676381?). O processo de geodificação inversa, como o nome sugere, realiza a conversão de coordenadas geográficas para um endereço. Por fim, a geocodificação por cruzamentos permite obter dados de endereço ou dados geográficos a partir do cruzamentos entre localizações.

A estrutura abaixo contém as informações do contrato de operação para o serviço AddressFinder.

Funcionalidade Nome da operação
Busca de Endereços findAddress
Busca de Cidades findCity
Busca de Pontos de Interesse findPOI
Obter Endereço por Coordenadas getAddress
Buscar Cidades de um Estado findCitiesByState
Busca de pontos de interesse findPOI
Busca de Endereço com Contexto (uso interno) findAddressContext
Busca de Cidade com Contexto (uso interno) findCityContext
Obter Coordenadas por Endereço getXY

O serviço MapRender disponibiliza através de suas operações as funcionalidades de renderização de mapas através de contextos diversos, considerando a geração por uma área específica em coordenadas geográficas, por pontos, cidade ou estado, além de prover as opções de ampliação e deslocamento da área.

Parâmetro de entrada “routeId”

As operações deste serviço possuem o parâmetro “routeId” como opcional. Através dele é possível fornecer o identificador de uma rota gerada através das operações do serviço Route, possibilitando a identificação da rota no mapa gerado. Este identificador é válido pelo período de três horas, sendo invalidado após este intervalo. Os exemplos em código fonte para as operações descritos ao decorrer desta seção utiliza em alguns casos um identificador de rota de exemplo. Caso o exemplo seja executado, fornecendo o mesmo identificador de rota, será retornado um endereço de acesso inválido para a imagem do mapa, indicando que a operação sofreu falha no seu processamento.

Dados de retorno

Existe um retorno padrão para as operações disponíveis, onde é disponibilizando o endereço para acesso da imagem com o mapa renderizado gerado e um objeto “Extent“, sendo este referente as dimensões do mapa, com os pontos mínimos e máximos para as coordenadas X e Y.

A estrutura abaixo contém as informações do contrato de operação para o serviço MapRender.

Funcionalidade Nome da operação
Renderização de Mapa por Área getMap
Renderização de Mapa com Ampliação getZoom
Renderização de Mapa com Navegação por Deslocamento getPan
Renderização de Mapa por Coordenadas e raio getZoomRadius
Renderização de Mapa com ampliação por pontos getZoomWindow
Renderização de Mapa por Estado getZoomState
Renderização de Mapa porCidade getZoomCity

O serviço Route e Rotas especiais disponibiliza através de suas operações as funcionalidades de geração de rotas simples, múltiplas e com percursos alternativos, além de obter dados de custos por trajeto da rota e sumarizados, e opção para renderização de mapa a partir de uma roteirização realizada entre pontos de parada.

A estrutura abaixo contém as informações do contrato de operação para o serviço Route.

Funcionalidade Nome da operação
Geração de rotas getRoute
Obter dados de resumo por rota getRouteSummary
Cálculo de Valores Totais por Rota getRouteTotals
Obter Dados de Descrição por Rota getRouteDescription
Geração de Rota com Recurso de Desvio de Tránsito getRouteAvoidingTraffic
Renderização de Mapa por Rota getRouteWithMap
Obtém Coordenadas de uma Rota getCoordsFull
Obter Rota por Identificador (uso interno) getRouteByID
Obter Distância de um Ponto à uma Rota getDistancePointFromRoute

A estrutura abaixo contém as informações do contrato de operação para o serviço SpecialRoute.

Funcionalidade Nome da operação
Geração de Rotas com Recurso de Desvio de Trânsito getRouteAvoidingTraffic
Geração de Rotas com Recurso de Desvio de Área com Rodízio getRouteAvoidingRestrictedArea

O serviço Traffic disponibiliza através de suas operações as funcionalidades de busca de informações de trânsito, considerando corredores específicos, por localização (cidade e estado) ou por categorias, podendo por exemplo, verificar trechos com obras na via ou com incidentes de alagamentos, acidentes, entre outras situações que venham a compremeter o tráfego em um determinado ponto. Adicionalmente, estão disponíveis as opções para obtenção de notícias de trânsito, sendo estas sincronizadas com as ocorrências geradas no site da MapLink.

A estrutura abaixo contém as informações do contrato de operação do serviço Traffic.

Funcionalidade Nome da operação
Geração de Rotas com Recurso de Desvio de Trânsito Informações sumarizadas de trânsito por localidade
Obtém Informações dos Corredores getCorridors
Obtém Informações de um Corredor especifíco getByCorridorById
Obtém Informações de Trechos por Corredor getExcerpts
Obtém Informações dos Corredores com ocorrência de congestionamento getCongestedCorridors
Obtém Informações Gerais de Trânsito com Congestionamento getAllCongested

Exemplos de utilização das estruturas relacionadas ao grupo de funcionalidades de layers.

Adicionando e removendo layers para o mapa

Para adicionar layers no mapa existem disponíveis as operações “addLayer” e “addLayers”, sendo a utilizada para adicionar um único layer, enquanto o segunda permite adicionar múltiplas camadas para o mapa.

O exemplo de código abaixo demonstra a inclusão de um layer comum para o mapa criado através da operação “addLayer”.

Para inclusão de múltiplas camadas deve-se utilizar a operação “addLayers”, conforme exemplo de código abaixo.

Para remover um layer contido no mapa, utilizar a operação “removeLayer”, informando como parâmetro a referência do layer usada anteriormente para associá-lo ao mapa, conforme exemplo de código.

Adicionando layer de trânsito para o mapa

Para ativar o layer de trânsito em um mapa é preciso realizar a chamada para a operação responsável por criar o layer de trânsito, sendo ela o comportamento “createTrafficLayer”, e associar a camada obtida ao mapa, através do método “addLayer”. O exemplo de código abaixo demonstra este procedimento.

Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

O layer de trânsito abordado anteriormente não possui o recurso de atualização dos dados de forma automática. Para uso desta funcionalidade, deve-se criar o layer através do comportamento “createTrafficLayerWithAutoUpdate” e associá-lo ao mapa, seguindo o exemplo a seguir.

Adicionando layer de ciclovias no mapa

Para ativar o layer de ciclovias em um mapa é preciso realizar a chamada para a operação responsável por criar o layer de ciclovias, sendo ela o comportamento “createBaseLayer” com o parâmetro “LBS_BICYCLE_MAP”, e trocar a camada base obtida ao mapa, através do método “changeBaseLayer”. O exemplo de código abaixo demonstra este procedimento.


Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

Obtendo layers presentes no mapa

Para obter todos os layers presentes no mapa, deve-se acessar a propriedade “layers” contida no objeto MMap2. O código de exemplo abaixo cria e associa dois tipos de layers para um mapa e obtém o conjunto de camadas existentes no mesmo.

É possível obter a instância de um layer por seu nome através da operação “getLayersByName”, conforme exemplo abaixo.

Exemplos de utilização das estruturas relacionadas ao grupo de funcionalidades de mapas.

Criando e exibindo um mapa

Para criar um mapa e exibí-lo dentro de uma página HTML, é necessário informar um elemento “div”, onde ele será plotado, no momento da criação do objeto MMap2. Adicionalmente, mesmo sendo um procedimento opcional, é importante definir um ponto central ao mapa com os valores de coordenadas geográficas.

O código de exemplo abaixo cria um novo objetivo do tipo “MMap2″ e define no seu construtor o código de identificação do elemento “div” onde o mapa será plotado. Posteriormente, é definido um objeto “MPoint” com os valores de coordenadas geográficas, sendo latitude “-23.5650127″ e longitude “-46.6520066″, representando o endereço “Avenida Paulista, 1000 – São Paulo/SP”, e nível de zoom com valor “14″. O mapa tem seu ponto central definido através da operação “setCenter”.

Trabalhando com controles

O recurso de mapas permite a inclusão de controles sobre o mesmo, permitindo realizar operações de zoom ou deslocamento através de uma ferramenta contida sobre o mapa. Para incluir um novo controle, deve-se utilizar a operação “addControl”, enquanto que para removê-lo, existe o método “removeControl”, sendo ambos presentes no objeto MMap2. O exemplo de código a seguir demonstra a utilização dessas operações.

Existem alguns controles disponíveis para serem integrados ao mapa, sendo eles listados na relação a seguir.

  • GLargeMapControl

  • A estrutura “GLargeMapControl” define um controle para manipulação do mapa, oferecendo opções de deslocamento e zoom. A seguir é apresentado um exemplo de implementação para utilização deste controle.

    Página com implementação de exemplo da funcionalidade:

    Acessar página de exemplo

  • GSmallMapControl

  • A estrutura “GSmallMapControl” possui o mesmo objetivo que a estrutura “GLargeMapControl”, ou seja, oferecer recursos para manipular o mapa, tendo como diferença o fato do controle de zoom ser menor, exibindo apenas os botões para aumentar e diminuir o seu nível e ocultando a barra para realizar a mesma tarefa. A seguir é apresentado um exemplo de implementação para utilização deste controle.

    Página com implementação de exemplo da funcionalidade:

    Acessar página de exemplo

  • Controles customizados

  • É possível criar controles customizados, a partir da especificação da estrutura “GControl”. O exemplo de código a seguir demonstra a implementação da estrutura “TextZoomControl”, adicionando recursos de controle de zoom através das operações “zoomIn” e “zoomOut”, sendo estas disponíveis através de botões inseridos no mapa.

    Página com implementação de exemplo da funcionalidade:

    Acessar página de exemplo

Trabalhando com operações de zoom

O código de exemplo abaixo cria um novo objetivo do tipo “MMap2″ e define no seu construtor o código de identificação do elemento “div” onde o mapa será plotado. Posteriormente, é definido um objeto “MPoint” com os valores de coordenadas geográficas, sendo latitude “-23.5650127″ e longitude “-46.6520066″, representando o endereço “Avenida Paulista, 1000 – São Paulo/SP”, e nível de zoom com valor “14″. O mapa tem seu ponto central definido através da operação “setCenter”.

Para obter o nível de zoom, basta utilizar a operação “getZoom” presente na objeto com estrutura “MMap2.”

O nível de zoom pode ser reatribuido utilizando a operação “setZoom” presente no objeto MMap2, fornecendo como parâmetro o valor de zoom desejado, permitindo o recebimento de valores com número inteiro entre 1 e 19.

É possível aumentar ou diminuir o nível de zoom, utilizando as operações “zoomIn” e “zoomOut”, respectivamente, conforme exemplo de código abaixo:

Para desabilitar o evento responsável por acionar a mudança de zoom do mapa através do “scroll wheel” do mouse, é preciso usar a função “disableScrollWheelZoom” presente na estrutura MMap2, conforme o código abaixo:

Adicionando eventos com interação sobre o mapa

Para associar eventos ao objeto do mapa, é possível adicionar ‘listeners’ para o mesmo, informando o evento a ser mapeado e uma função com as ações a serem feitas.

O código de exemplo abaixo utiliza a a estrutura “LBS.Event”, juntamente com a operação “addListener” para criar um evento. Como parâmetros necessário é preciso informar o objeto alvo, o tipo do evento e a função com as ações a serem executadas, respectivamente.

O segundo parâmetro responsável por definir o evento a ser mapeado possui como valores possíveis as ações contidas na propriedade “EVENT_TYPES” da estrutura “MMap2″, as quais são:

["addlayer", "addmaptype", "addmarker", "changebaselayer", "changelayer", "changemaptype", "clearmarkers", "drag", "dragend", "dragstart", "infowindowclose", "infowindowopen", "mousemove", "mouseout", "mouseover", "move", "moveend", "movestart", "preaddlayer", "removelayer", "removemaptype", "removemarker", "zoomend"]

O evento “zoomend” usado no código de exemplo anterior, mapeia a ação de mudança de zoom, permitindo capturar a ação do usuário quando o mesmo usa o recurso “scroll” do mouse.

Exemplos de utilização das estruturas relacionadas ao grupo de funcionalidades de marcadores para o mapa.

Adicionando e removendo marcadores no mapa

Para adicionar um ou mais marcadores no mapa deve-se utilizar a operação “addMarker”, informando como parâmetro uma referência de objeto com a estrutura MPoint, onde são representandos os valores de coordenadas geográfica para a localização onde o marcador será posicionado. O exemplo de código abaixo contém a inserção de dois marcadores para um mapa.

O processo de remoção de marcadores é feito através do uso da operação “removerMarker”, informando como parãmetro para o método a referência de objeto do marcador. O código a seguir demonstra este procedimento.

Para remover todos os marcadores existentes no mapa, deve-se utilizar a operação “removeAllMarkers”, conforme exemplo abaixo:

Atribuir rótulo ao marcador

Para adicionar um rótulo ao marcador inserido no mapa, é preciso criar um evento criando uma interação entre o ícone presente no mapa e a ação do usuário, como por exemplo, ao clicar ou passar o cursor do mouse sobre o item. O código de exemplo a seguir exibe a criação de um marcador e um evento, através da estrutura “LBS.Event” com método “addListener”, utilizando os eventos “mouseover” e “mouseout”, ou seja, ao passar e remover o mouse sobre o marcador.

Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

Definir ícone personalizado para o marcador

É possível definir um ícone personalizado a ser exibido no marcador adicionado no mapa. Para isso, deve-se criar um objeto do tipo “MIcon”, informando suas características e parâmetros, e definir a referência do marcador com o novo ícone para o mapa. O código de exemplo abaixo apresenta a implementação deste procedimento.

O ícone personalizado possui um valor padrão para a posição da janela de informação, que pode ser configurado alterando o atributo “infoWindowAnchor” do objeto “MIcon”. Essa variável possui a coordenada a que a janela de informação aponta com referência ao ícone conforme imagens abaixo.

AxisOnIconToWindowInfoExampleIconWindowInfoPositionExample

Para pesonalizar esse posicionamento, atribua uma instância de “MPoint” no atributo “infoWindowAnchor” do objeto “MIcon”, conforme exemplo abaixo:

Definir marcador móvel

O marcador adicionado no mapa pode se tornar móvel, permitindo seu reposicionamento, através da criação de um evento com o tipo “click”, possibilitando o monitoramento da posição do marcador no momento do clique sobre o mesmo, até o ato de soltá-lo e definí-lo em um novo posicionamento.

Abaixo consta um exemplo de implementação para a funcionalidade de posicionamento do marcador no mapa, através da interação do usuário com o mouse.

Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

Obter dados de latitude e longitude a partir da posição do marcador

A partir da localização de um marcador no mapa é possível obter os dados em coordenadas geográficas, permitindo a manipulação de dados de latitude e longitude, através da leitura do atributo “latlng”. O exemplo de código abaixo demonstra a implementação desta funcionalidade.

Ajustar mapa de acordo com os marcadores

É possível ajustar o mapa de acordo os marcadores informando um array com diversas posições (latitude e longitude) com parâmetro no método zoomToExtent. O exemplo de código abaixo demonstra a implementação desta funcionalidade.

Acessar página de exemplo

Traçar linha entre pontos

Com o recurso de polígonos é possível traçar pontos e demais formas através da estrutura MPolyLine. O exemplo de código a seguir apresenta a implementação necessária para traçar uma linha entre dois pontos que foram definidos no mapa.

Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

Obter distância entre pontos

Ao adicionar pontos de forma dinâmica no mapa é possível obter a distância em km entre eles. O código de exemplo a seguir apresenta a implementação necessária para esta funcionalidade.

Trecho de código:

Visualizar código completo

Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

Criar polígono ao definir pontos

Combinando os eventos de interação do mouse, onde é possível definir os pontos no mapa, juntamente com a estrutura de criação de polígonos, é possível criar formas dinâmicas (a partir do terceiro ponto) por pontos existentes no mapa. O código a seguir apresenta o exemplo de implementação desta funcionalidade.

Trecho de código:

Visualizar código completo

Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

Obter pontos que fazem parte de um polígono

É possível obter os pontos que constituem o polígono existente em um mapa. Adicionalmente, neste exemplo, o evento do clique do lado esquerdo do mouse é identificado para verificar se o ponto escolhido faz parte ou não do polígono. Em caso positivo, uma janela de informação é exibida com os pontos (coordenadas geográficas) que formam o polígono.

Trecho de código:

Visualizar código completo

Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

Desenho de círculos

É possível desenhar um círculo a partir de um ponto no mapa, estipulando características de estilo, como cor e espessura da borda, e também o valor do raio em metros a ser considerado para traçar o círculo a partir do ponto de origem definido.

Inicialmente é preciso criar uma estrutura do tipo “MCirclle”, atribuindo os parâmetros: ponto de origem, raio em metros e propriedades da linha a ser traçada no círculo gerado.

Trecho de código:

Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

Exemplos de utilização das estruturas relacionadas ao grupo de funcionalidades de rotas para o mapa.

Gerando mapa com rota traçada

Existe a funcionalidade para geração de rotas a partir de um ponto de origem e destino. O resultado da operação é o desenho do percurso necessário par alcançar o objetivo no mapa, juntamente com dados de percurso, pedágio, custo da viagem, entre outros dados.

O exemplo de código a seguir demonstra a implementação da funcionalidade de geração de rotas em um mapa. Para isso, deve-se utilizar a estrutura de dados “MRouteMannager” e a operação “createRoute”.

Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

Reconstruir uma rota no mapa

Após uma rota ter sido definida no mapa, em algumas situações é necessário remover o trajeto da rota corrente e gerar uma nova, dentro da mesma página e mapa já definido. Para fazer este procedimento, basta utilizar a função “destroy()” presente na estrutura “MRouteMannager”. Ao executar este comando, o trajeto da rota, assim como os marcadores associados a mesma, são removidas do mapa. Para inserir uma nova rota, deve-se utilizar a função “createRoute” da estrutura “MRouteMannager”, ou seja, executar o mesmo comando caso fosse a primeira execução de roteirização no mapa.

O exemplo de código a seguir possui duas funções para manipular uma rota dentro de um mapa, permitindo remover uma já existente, e recriar/gerar uma rota no mapa.

O conteúdo das variáveis “routeStops”, “routeOptions” e demais, pode ser considerado a partir do exemplo anterior “Gerando mapa com rota traçada”.

Capturando erros ao traçar uma rota

Ao utilizar a estrutura “MRouteMannager” e a função “createRoute” é possível utilizar um objeto de callback para capturar a mensagem de erro em caso de falha no processo de roteirização. Para isso, é preciso definir uma callback que possua as funções “onSuccess” e “onError” e informar como quarto parâmetro da função “createRoute”.

Estrutura do objeto callback:

  • onSuccess: função que irá receber o retorno da requisição realizada e obter os dados da rota traçada.
  • onError: função possui a mensagem de erro gerada em caso de falha ao roteirizar.

Segue abaixo exemplo de rota traçada usando a estrutura para capturar o erro.

Acessar página de exemplo

Definindo rotas urbanas ou rodoviárias

A funcionalidade de geração de rotas permite selecionar o tipo da roteirização a ser obtida, podendo ser rota urbana ou rodoviária. A escolha deste atributo é feito através do parâmetro “descriptionType” presente na estrutura de dados “MRouteDetails”. A rota traçada retorna nos detalhes da descrição somente dados correspondente a rodovias, caso seja selecionada. Do contrário, além dos dados de rodovias, possui os trechos urbanos.

Os exemplos abaixo demonstram a criação de uma rota para trecho urbano e rodoviário, respectivamente.

Definindo pontos de parada por rota

Existe a funcionalidade para adicionar pontos de parada para uma determinada rota a ser gerada. Com isso, além dos pontos de origem e destino, é possível informar pontos de parada que estejam planejados para o percurso. Com isso, a partir destes pontos escolhidos, a rota a ser traçada pode ser influenciada, para que a mesma atenda as paradas previamente informadas.

O exemplo de código abaixo demonstra a implementação desta funcionalidade.

Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

Obtendo dados de retorno para rota gerada

Ao solicitar o cálculo de uma rota, é possível obter os dados dos detalhes da roteirazação obtida, ou seja, os trechos e percursos geradas para o percurso criado a partir de pontos de origem, destino e de parada, além dos dados sumarizados e de cálculo totais e gastos (pedágio, custo de combustível, distância, entre outros).

Para obter os dados é preciso utilizar uma função de callback para capturar o retorno. Essa função é informada como parâmetro para a operação “createRoute” da estrutura “MRouteMannager”.

Visualizar código completo

Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

Obtendo descrição com detalhes por rota

Ao solicitar o cálculo de uma rota, é possível obter os dados dos detalhes da roteirazação obtida, ou seja, os trechos e percursos geradas para o percurso criado a partir de pontos de origem, destino e de parada.

Utilizando as estruturas MRouteDescriptionOptions e MTable é possível obter uma tabela, sendo esta definida em uma div de sua preferência, com os dados dos trechos para a rota gerada. O código de exemplo a seguir demonstra como obter esses dados.

Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

Gerando múltiplas rotas

Esta funcionalidade disponibiliza um recurso para traçar múltiplas rotas, obtendo como resultado os dados sumarizados e o desenho de linhas em um mapa por rota obtida. Para utilização da funcionalidade é necessário interagir com duas entidades: MMultiRouteRequest e MMultiRouteManager.

A entidade MMultiRouteRequest armazena as rotas a serem calculadas, com informações do ponto de origem, destino e a cor de linha por rota. Para definir uma nova rota é preciso instanciar um novo objeto para esta entidade e através do seu seu construtor informar dois pontos de parada, sendo um para a origem e o outro para o destino, além da cor da linha a ser usada para desenhar a rota em um mapa.

A entidade MMultiRouteManager recebe um conjunto de rotas definidas (MMultiRouteRequest[]), as opções da rota (RouteOptions) e a função callback de retorno para obter os dados sumarizados por rota. A estrutura MMultiRouteRequest possui como restrição o número máximo de 30 pontos de origem e destino.

A seguir um trecho com a implementação necessária para usufruir desta funcionalidade.

Visualizar código completo

Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

Obtendo dados de retorno para rota com transporte público

Esta funcionalidade permite obter os dados do trajeto existente em uma rota de transporte público, contendo informações de estações de trem (Metrô e CPTM), por exemplo.

É preciso verificar na entidade de retorno “segmentDescription”, o índice do conjunto de elementos que possui os dados de transporte público, sendo estes representandos através da estrutura “publicTransportationDetails”.

A seguir um trecho com a implementação necessária para usufruir desta funcionalidade.

Visualizar código completo

Página com implementação de exemplo da funcionalidade:

Acessar página de exemplo

Definindo ícones customizados para a rota gerada

É possível definir ícones customizados para os marcadores inseridos em uma rota traçada, onde há um ícone para cada ponto definido (origem, destino ou pontos de parada).

Para isso é necessário definir para o atributo da estrutura “MRoutePoint” um objeto do tipo “MIcon”, atribuindo o endereço de imagem do ícone customizado a ser definido.

A seguir um trecho com a implementação necessária para usufruir desta funcionalidade.

Alterando a cor usada para desenhar o trajeto exibido no mapa

Ao traçar uma rota, por padrão uma cor pré-determinada é utilizada para desenhar o trajeto no mapa. É possível alterar a cor utilizada, informando um novo valor em formato hexadecimal.

Para isso é necessário informar o conteúdo da nova cor através do construtor da estrutura “MRouteMannager”.

A seguir um trecho com a implementação necessária para usufruir desta funcionalidade.

Redefindo nível de ampliação (zoom) a partir dos pontos da rota

É possível redefinir o nível de ampliação (zoom) do mapa, considerando os pontos existentes na rota traçada. Dessa forma, caso a região de visualização do mapa tenha sido alterada, basta utilizar uma função para redefinir o zoom e visualizar novamente a área com a área desenhada.

Para isso é necessário utilizar as funções “getZoomForPoint”, presente na estrutura “MMap”. Além da rotina “fromArray”, existente na estrutura “LBS.Bounds”.

A seguir um trecho com a implementação necessária para usufruir desta funcionalidade.

Acessar página de exemplo