Невозможно поместить маркер в GWT-карты с помощью Lat & Lng - исключение нулевого указателя в map.addOverlay (Marker) - PullRequest
1 голос
/ 02 июня 2010

Я пытаюсь добавить несколько маркеров на мою GWT-карту. Если я делаю это с геокодером, он работает просто отлично ... Но я также получаю значения из базы данных, так что я могу разместить их через Lat Lng.

Это код:

public static void markerSetzen(final double lat, final double lon) {
    /* Markeroptionen setzen */
    MarkerOptions markeroptions = MarkerOptions.newInstance();
    markeroptions.setBouncy(true);
    markeroptions.setBounceGravity(0.3);


    final Marker marker = new Marker(LatLng.newInstance(lat, lon),
            markeroptions);

    map.addOverlay(marker);
    marker.addMarkerClickHandler(new MarkerClickHandler() {

        @Override
        public void onClick(MarkerClickEvent event) {
            // popup- Fenster erstellen
            map.getInfoWindow().open(
                    LatLng.newInstance(lat, lon),
                    new InfoWindowContent(image + name + "<br>" + ort
                            + "<br>" + kategorie + "<br><br>"
                            + beschreibung + "<br>" + web));

        }
    });
}

Исключение всегда выдается в map.addOverlay (). Я проверяю возвращенные двойники из БД через Сисо, и они просто отлично ...

Я надеюсь, что кто-то может помочь,

заранее спасибо

РЕДАКТИРОВАТЬ: это код метода геокодера, который делает то, что я хочу:

public static void koordSuchen(final double lat, final double lon,
        final String ort, final String image, final String name,
        final String kategorie, final String beschreibung,
        final String web, final int zoomlevel) {
    // Geokodierung von Adressen herausbekommen
    Geocoder geocoder = new Geocoder();
    geocoder.getLatLng(ort, new LatLngCallback() {

        @Override
        public void onSuccess(LatLng point) {
            final LatLng ortKoord = LatLng.newInstance(lat, lon);
            // neuen Marker erstellen
            Marker marker = new Marker(ortKoord);
            // neues Marker- Overlay erstellen
            map.addOverlay(marker);
            // Marker Klickhandler erstellen (Bei klick auf Marker oeffnet
            // sich ein Popup)
            marker.addMarkerClickHandler(new MarkerClickHandler() {

                @Override
                public void onClick(MarkerClickEvent event) {
                    // popup- Fenster erstellen
                    map.getInfoWindow().open(
                            ortKoord,
                            new InfoWindowContent(image + name + "<br>"
                                    + ort + "<br>" + kategorie + "<br><br>"
                                    + beschreibung + "<br>" + web));

                }
            });
        }

        @Override
        public void onFailure() {
        }
    });
}

1 Ответ

0 голосов
/ 02 июня 2010

map.addOverlay() - это первый экземпляр переменной map в вашем примере кода. Вы уверены, что map инициализирован?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...