如何在Java Application中访问google maps api?

如何从Java应用程序访问google maps API?

您可以使用Swing-WS ,JXMapViewer组件可用,并提供与JavaScript版本类似的function。 但是,在提供的API之外访问Google磁贴服务器仍然不合法:JavaScript和Flash。

打开了一个问题来跟踪此请求: http : //code.google.com/p/gmaps-api-issues/issues/detail?id = 1396 。 它已获批准,但谁知道什么时候可以使用。

客户端Java的最佳选择是Static Maps API 。 对于服务器端Java,答案将在很大程度上取决于您用于开发的框架。 话虽如此,Google Maps API已有详细记录 。

您可以使用来自swingx的Swing Labs,JXMapKit: http ://today.java.net/pub/a/today/2007/10/30/building-maps-into-swing-app-with-jxmapviewer.html

这很直截了当。 有关更多信息,请参阅网站。

JXMapKit mapView = new JXMapKit(); mapView.setDefaultProvider(DefaultProviders.OpenStreetMaps); mapView.setDataProviderCreditShown(true); add(mapView) 

它看起来像这样:

alt text http://today.java.net/images/2007/10/basic_running_app.png

看看上面文章中的源代码,有三行代码,您可以轻松查看地图:

如果您只是寻找一个静态地图,您可以使用此代码来使地图工作:

 import java.awt.BorderLayout; public class GoogleMapsGui extends JFrame { final Logger log = Logger.getLogger(GoogleMapsGui.class.getName()); private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { GoogleMapsGui frame = new GoogleMapsGui(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public GoogleMapsGui() { setTitle("Map"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 592, 352); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); JFrame test = new JFrame("Google Maps"); try { // String latitude = "-25.9994652"; // String longitude = "28.3112051"; String location = JOptionPane .showInputDialog(" please enter the desired loccation");// get // the // location // for // geo // coding Scanner sc = new Scanner(location); Scanner sc2 = new Scanner(location); String marker = ""; String path = JOptionPane .showInputDialog("what is your destination?"); String zoom = JOptionPane .showInputDialog("how far in do you want to zoom?\n" + "12(zoomed out) - 20 (zoomed in)"); String imageUrl = "https://maps.googleapis.com/maps/api/staticmap?"; while (sc.hasNext()) {// add location to imageUrl imageUrl = imageUrl + sc.next(); } marker = "&markers=color:red|"; while (sc2.hasNext()) {// add marker location to marker marker = marker + sc2.next() + ","; } marker = marker.substring(0, marker.length() - 1); imageUrl = imageUrl + "&size=620x620&scale=2&maptype=hybrid" + marker; // log.info("Generated url"); String destinationFile = "image.jpg"; // read the map image from Google // then save it to a local file: image.jpg // URL url = new URL(imageUrl); InputStream is = url.openStream(); OutputStream os = new FileOutputStream(destinationFile); byte[] b = new byte[2048]; int length; while ((length = is.read(b)) != -1) { os.write(b, 0, length); } log.info("Created image.jpg"); is.close(); os.close(); sc.close(); sc2.close(); log.info("Closed util's"); } catch (IOException e) { e.printStackTrace(); System.exit(1); log.severe("Could not create image.jpg"); }// fin getting and storing image ImageIcon imageIcon = new ImageIcon((new ImageIcon("image.jpg")) .getImage().getScaledInstance(630, 600, java.awt.Image.SCALE_SMOOTH)); contentPane.setLayout(null); JLabel imgMap = new JLabel(imageIcon); imgMap.setBounds(5, 5, 571, 308); contentPane.add(imgMap); } } 

还可以在这里查看Goolge静态地图API