2015-12-02 2 views
0

Я пытаюсь разобрать широту и долготу с карты Google Maps на этом сайте http://hdh.ucsd.edu/mobile/dining/locationmap.aspx?l=39, но я ничего не могу извлечь. Как я смогу получить широту и долготу? Или какой запрос мог бы выполнить это?JSOUP parse iframe Google Maps

Document document = Jsoup.connect(url).get(); 
Elements elements = document.select("div.place-name"); 
String LOCATION = elements.text(); 

ответ

0

Вы можете прочитать координаты из атрибута src тега iframe. Этот URL-адрес содержит параметр q, который даст вам координаты, разделенные запятой.

package com.github.davidepastore.stackoverflow34038430; 

import java.io.IOException; 
import java.net.URL; 

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 

/** 
* Stackoverflow 34038430 question. 
* 
*/ 
public class App { 

    public static void main(String[] args) throws IOException { 
     String url = "http://hdh.ucsd.edu/mobile/dining/locationmap.aspx?l=39"; 
     Document document = Jsoup.connect(url).get(); 
     String src = document.select("iframe").first().attr("src"); 
     URL srcUrl = new URL(src); 
     String result = getParamValue(srcUrl.getQuery()); 
     String[] coordinates = result.split(","); 
     Double latitude = Double.parseDouble(coordinates[0]); 
     Double longitude = Double.parseDouble(coordinates[1]); 
     System.out.println("Latitude: " + latitude); 
     System.out.println("Longitude: " + longitude); 
    } 

    /** 
    * Get the param value. 
    * @param query The query string. 
    * @return Returns the parameter value. 
    */ 
    public static String getParamValue(String query) { 
     String[] params = query.split("&"); 
     for (String param : params) { 
      String name = param.split("=")[0]; 
      if("q".equals(name)){ 
       return param.split("=")[1]; 
      } 
     } 
     return null; 
    } 

} 
0

Этот URL, что вы предоставили не div.place-name, потому что это в IFRAME, если вы проверяете его с поджигатель.

Труднее получить координаты, потому что этот URL должен использоваться в iframe.

Тег iframe имеет тег src, который имеет координаты. Если это cooridnates q=32.881093211,-117.2406307, вы можете получить iframe с JSOUP и извлечь эти два номера с пользовательским регулярным выражением.

+0

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. - [Из обзора] (/ review/low-quality-posts/10411996) – Lal

+1

Я сказал, что упомянутый URL-адрес имеет координаты, но я не упоминал, что это src-тег. Так что извлечение их довольно просто. Его можно даже протестировать здесь: http://try.jsoup.org/ для упомянутого URL. –