有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

地理编码器java gwt

我试图让用户输入一个位置地址,并在gwt中使用谷歌地图在地图上显示位置,并将该位置用于其他服务。我用的是gwt地图3.8。javadoc在线版对描述这个类的工作原理没有太大帮助,我在网上找不到任何例子。有人有什么想法吗

这就是我目前的情况:

private void geocode()
{

    final String addr = addressBox.getText().toUpperCase().trim();
        addressBox.setFocus(true);

    addressBox.setText("");

    Geocoder G = Geocoder.create();
    GeocoderRequest GReq = GeocoderRequest.create();
    GReq.setAddress(addr);

        // should this be just create or createarray? it won't let me use createarray
    GeocoderResult GResult = GeocoderResult.create();


com.google.maps.gwt.client.Geocoder.Callback gcallback = new Geocoder.Callback() {      

        @Override
                // i don't understand this handle part, the first parameter is not 
                //defined in the javadoc.  I looked around online and it seems to be a 
                //array of geocoder result but I can't make the array because it's a 
                //javascript object
        public void handle(GeocoderResult a[], GeocoderStatus b) {

}}};

提前感谢您抽出时间


共 (1) 个答案

  1. # 1 楼答案

    我相信你要找的是:

    String address = address1 + "," + number + "," + address2 + "," + city;
            GeocoderRequest request = GeocoderRequest.create();
            request.setAddress(address);
            Geocoder geoCoder = Geocoder.create();
            geoCoder.geocode(request, new Geocoder.Callback() {
    
                @Override
                public void handle(JsArray<GeocoderResult> a, GeocoderStatus b) {
                    if (b == GeocoderStatus.OK) {
                        GeocoderResult result = a.shift();
                        map.setCenter(result.getGeometry().getLocation());
                    } else {
                        Window.alert("Aconteceu algo errado no google ao pegar este local, confira endereco");
                    }
                }      
                });