Haverá mais ensaios sobre o mapa de Gaode.
1. Descrição dos negócios
Existem dois tipos de membros no negócio de aplicativos correspondentes: um é o pessoal de serviço e o outro é o pessoal de serviço. Ele percebe principalmente as funções e localiza a localização do pessoal de serviço no aplicativo em tempo hábil. Em seguida, a unidade de distância M entre o pessoal de serviço e o pessoal de serviço é calculada através de uma latitude e longitude fornecidas quando o pessoal do serviço faz login no aplicativo.
The following is the entire detailed process, from creating a Gaode corresponding application (I won’t talk about it if you register here)-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2. Crie o aplicativo Gaode Mapa correspondente ao servlet e crie sua própria tabela de banco de dados em mapa em nuvem
Depois de registrar uma conta, faça login e clique no console no canto superior direito. A interface a seguir será exibida. Eu tirei uma captura de tela.
Obviamente, esta é a interface que eu registrei. Se você não se registrar, pegue a chave. Clique aqui diretamente para criar seu aplicativo. Você pode obter o nome do aplicativo à vontade, porque somos servlets aqui para lidar com isso.
Negócios relacionados, portanto, a opção é a API de serviço da web. Aqui você clica para obter a chave e a captura de tela abaixo aparecerá.
Após a conclusão desta etapa, podemos criar o gráfico em nuvem que queremos, insira o console, selecione o mouse para mover para meus dados e selecionar a estação de gerenciamento de dados (Web) abaixo para inserir a interface para adicionar gráficos em nuvem.
Abaixo está uma captura de tela após a entrada. Após esta captura de tela, explicarei diretamente no texto.
A captura de tela acima é o resultado que eu criei. Aqui precisamos clicar primeiro no download do modelo de dados no canto superior direito. Depois de baixar o modelo, modifique os dados correspondentes, adicione os campos necessários e clique no novo mapa para
O modelo modificado é importado para a biblioteca em nuvem. Este modelo é na verdade uma tabela de banco de dados exportada pelo Excel. Abaixo, intercepto diretamente a tabela que criei. Adicionei dois campos a esta tabela e defino um campo para o campo Index.
Lembre -se de que o nome do campo vermelho deve ser preservado (o conteúdo pode ser modificado à vontade), que está incluído no modelo do sistema. Os dois campos negros no final são adicionados por si mesmos e podem ser modificados à vontade. Mesmo se você o enviar para o servidor de mapa de nuvem Gaode, ele poderá ser alterado.
Após o upload da tabela acima, você abrirá o gerenciamento de dados anterior (Web) e a interface do mapa anterior aparecerá. Um bloco de mapa aparece à esquerda. Clique e você verá as informações detalhadas da pessoa que você carregou, bem como o logotipo Star amarelo de cinco pontos exibido no mapa através da latitude e longitude carregadas. Existem capturas de tela abaixo
Os campos exibidos nesta tabela são modificados por mim, não enviados no Excel agora. Clicar no título na coluna pode fazer uma série de configurações. Não vou entrar em detalhes.
Basta falar sobre as configurações do campo Index.
Depois de entrar, escolhi filtrar o índice de classificação-> filtrar o índice de classificação é definir uma condição de filtro para os campos recém-adicionados do usuário.
Estou usando o tipo de usuário tirado na imagem da nuvem acima. Também vou tirar uma foto disso para você.
Neste ponto, concluiremos toda a criação e o upload de etapas do mapa em nuvem. . . Em seguida, falarei sobre o método chamado.
2. Método de solicitação para a Biblioteca de Imagens da Cloud de Consulta Servlet
1. Primeiro poste o endereço do documento do desenvolvedor:
http://la
Aqui, o servlet usa a API de recuperação de nuvem e o aplicativo correspondente usa a API de armazenamento em nuvem. Talvez amanhã, um artigo sobre o local de tempo do cliente iOS correspondente a esta interface será adicionado.
Abaixo está o formato URL emendado. Digite a atualização diretamente no URL para obter os dados relevantes pelo GET.
http://yuntuapi.amap.com/datasearch/local?tableId=568bd32b305a2a31f604c650&city=beijing&keywords=%20&filter=type: serviço de serviço limite = 15 & página = 1 & key =? (A chave dos parâmetros aqui são os próprios)
Abaixo está o código do método de solicitação encapsulado
Helper de pacote; importar java.io.bufferedReader; importar java.io.ioException; importar java.io.inputStreamReader; importar java.io.printwriter; importar java.io.unsupportEdEncodingException; import java.net.url; import java.net.bodingException; java.util.map; classe pública httprequest { /** * Envie a solicitação de método GET para o url especificado * * @param url * url para enviar a solicitação * @param param * parâmetros de solicitação, os parâmetros de solicitação devem estar no formulário de nome1 = value1 e nome2 = valor2. * @return URL Resultado do recurso remoto representado pelo recurso remoto*/ public static string sendget (string url, string param) {string result = ""; BufferredReader in = null; tente {string urlnamestring = url + "?" + param; Url realurl = novo url (urlnamestring); // Abra a conexão entre a conexão de URLConnection URL = realUrl.Openconnection (); // Defina o atributo de solicitação geral Connection.SetRequestProperty ("aceitar", "*/*"); Connection.SetRequestProperty ("Connection", "Keep-Alive"); Connection.setRequestProperty ("User-Agent", "Mozilla/4.0 (compatível; MSIE 6.0; Windows NT 5.1; Sv1)"); // Crie uma conexão de conexão real.connect (); // Obtenha todos os campos de cabeçalho de resposta mapa <string, list <string>> map = Connection.getheadeRFields (); // Atravesse todos os campos de cabeçalho de resposta para (chave de string: map.keyyset ()) {System.out.println (key + "--->" + map.get (key)); } // Defina o fluxo de entrada do BufferErader para ler a resposta do URL em = new BufferredReader (new InputStreamReader (Connection.getInputStream ())); Linha de string; while ((line = in.readline ())! = null) {resultado += line; }} Catch (Exceção e) {System.out.println ("Exceção ocorreu ao enviar uma solicitação GET!" + E); E.PrintStackTrace (); } // Use finalmente bloco para fechar o fluxo de entrada finalmente {tente {if (in! = Null) {in.close (); }} Catch (Exceção E2) {E2.PrintStackTrace (); }} Retornar resultado; } /** * Envie uma solicitação para o URL especificado * @param url * url para enviar a solicitação * @param param * parâmetro de solicitação, o parâmetro de solicitação deve estar na forma de nome1 = value1 & name2 = value2. * @return Resposta Resultado do recurso remoto representado por */ public static string sendPost (String url, string param) {printWriter out = null; BufferredReader in = null; String result = ""; tente {url realurl = novo url (url); // Abra a conexão entre urlConnection Conn = realUrl.Openconnection (); // Defina o atributo de solicitação geral Conn.SetRequestProperty ("Aceitar", "*/*"); Conn.SetRequestProperty ("Connection", "Keep-Alive"); Conn.SetRequestProperty ("User-Agent", "Mozilla/4.0 (compatível; MSIE 6.0; Windows NT 5.1; Sv1)"); // Para enviar uma solicitação de postagem, você deve definir as duas linhas a seguir para Conn.SetDoOutput (true); Conn.SetDoinput (true); // Obtenha o fluxo de saída correspondente ao objeto URLConnection out = new PrintWriter (Conn.getOutputStream ()); // Envie o parâmetro de solicitação para fora.print (param); // buffer out.flush () do fluxo de saída de descarga; // Defina o fluxo de entrada do BufferReader para ler a resposta do URL em = new BufferredReader (new InputStreamReader (Conn.getInputStream ())); Linha de string; while ((line = in.readline ())! = null) {resultado += line; }} catch (Exceção e) {System.out.println ("Exceção ocorreu ao enviar uma solicitação de postagem!" +e); E.PrintStackTrace (); } // Use finalmente blocos para fechar o fluxo de saída e o fluxo de entrada finalmente {tente {if (out! = Null) {out.close (); } if (in! = null) {in.close (); }} catch (ioexception ex) {ex.printStackTrace (); }} tente {resultado = new String (resultado.getBytes ("ISO8859-1"), "UTF-8"); } Catch (UnsupportEdEnCodingException e) {// TODO BLOCO DE CATAGEM AUTOGERATO E.PRINTSTACKTRACE (); } resultado de retorno; }}O seguinte é o método de solicitação
String mapparameter = new String ("TABLEID = 568BD32B305A2A31F604C650 & CITY = Beijing & Palavras-chave =%20 & Filtro = Tipo: Massagista Limit = 15 & Page = 1 & key =?"). GetBytes ("ISO885-1"), "utf-8");
String returnResult = httprequest.sendpost ("http://yuntuapi.amap.com/datasearch/local", mapparameter);
out.println ("<cript> alert ("+returnResult+"); </script>");
A condição de filtragem que consultamos aqui é o campo que criamos (e definimos para um campo de índice) Tipo: Massageador --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3. Servlet calcula a distância entre duas latitudes e longitudes
Esta é a distância entre o servlet e o pessoal de serviço através da latitude e longitude. Este é realmente um relacionamento um para muitos. Uma pessoa que está sendo servida pode corresponder a N pessoas que prestam serviços. A latitude e a longitude do pessoal de serviço localizado no local corresponderão à latitude e longitude de todo o pessoal de serviço pesquisado desta vez e calcularão a distância.
A seguir, é apresentado um método para calcular a distância. Este é um método comum que se aplica a todos os principais mapas.
public static duplo getDistance (latlng start, latlng end) {duplo lat1 = (math.pi/180)*start.latitude; duplo lat2 = (math.pi/180)*end.latitude; duplo LON1 = (Math.pi/180)*start.longitude; duplo LON2 = (Math.pi/180)*end.longitude; duplo r = 6371; duplo d = math.acos (math.sin (lat1)*math.sin (lat2)+math.cos (lat1)*math.cos (lat2)*math.cos (LON2-LON1)*r; retornar d*1000; } Latlng no parâmetro Você pode criar uma classe você mesmo, que contém dois campos de tipo duplo. Um representa a precisão e o outro representa a latitude.
O processo gerado usando este método: quando o usuário abre a interface do aplicativo do pessoal de serviço, ele solicita a interface para ler a lista do pessoal de serviço. Neste momento, o servlet precisa consultar as informações do pessoal do serviço no mapa da nuvem de Gaode uma vez. Você pode limitar o número de consultas e, em seguida, consultá -las. A latitude e a longitude em cada dados são loopadas e a latitude e longitude transmitidas pela interface do aplicativo que são abertas pelo pessoal de serviço e calcule a distância relativa. Posso publicar um ensaio do iOS amanhã, que corresponde a essa interface, publicada principalmente no código do banco de dados do mapa em nuvem de localização de tempo implementada no iOS.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.