Can';t使用Lat&;在GWT地图中放置标记;Lng-map.addOverlay(Marker)中的空指针异常
我正在尝试向我的GWT地图添加多个标记。如果我用地理编码器做的话,效果很好。。。但我也从数据库中获取这些值,所以我可以通过Lat Lng来放置它们 这就是代码:Can';t使用Lat&;在GWT地图中放置标记;Lng-map.addOverlay(Marker)中的空指针异常,gwt,google-maps,nullpointerexception,Gwt,Google Maps,Nullpointerexception,我正在尝试向我的GWT地图添加多个标记。如果我用地理编码器做的话,效果很好。。。但我也从数据库中获取这些值,所以我可以通过Lat Lng来放置它们 这就是代码: public static void markerSetzen(final double lat, final double lon) { /* Markeroptionen setzen */ MarkerOptions markeroptions = MarkerOptions.newInstance();
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));
}
});
}
public static void markerSetzen(最终双lat,最终双lon){
/*Markeroptionen setzen*/
MarkerOptions MarkerOptions=MarkerOptions.newInstance();
markeroptions.setBouncy(真);
标记选项。设置重力(0.3);
最终标记=新标记(LatLng.newInstance(lat,lon),
标记选项);
添加覆盖图(标记);
addMarkerClickHandler(新的MarkerClickHandler(){
@凌驾
公共void onClick(MarkerClickEvent事件){
//弹出窗口-芬斯特·厄斯泰伦
map.getInfoWindow().open(
LatLng.新实例(lat,lon),
新信息窗口内容(图像+名称+“
”+ort
+“
”+kategorie+”
”
+beschreibung+“
”+web));
}
});
}
异常总是在map.addOverlay()处引发。我检查db返回的双倍
通过syso他们很好
我希望有人能帮忙
提前谢谢
编辑:这是geocoder方法的代码,它符合我的要求:
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() {
}
});
}
public static void koordSuchen(最终双lat,最终双lon,
最终字符串ort、最终字符串图像、最终字符串名称、,
最后一根琴弦卡蒂戈里,最后一根琴弦贝施雷邦,
最终字符串web、最终整数zoomlevel){
//阿雷森·赫拉斯贝科门地理研究所
Geocoder Geocoder=新的Geocoder();
geocoder.getLatLng(ort,新LatLngCallback(){
@凌驾
成功时的公共空隙(LatLng点){
最终LatLng ortKoord=LatLng.newInstance(lat,lon);
//neuen Marker erstellen
标记器=新标记器(ortKoord);
//neues标记-覆盖erstellen
添加覆盖图(标记);
//Marker Klickhandler erstellen(Bei klick auf Marker oeffnet
//sich(弹出窗口)
addMarkerClickHandler(新的MarkerClickHandler(){
@凌驾
公共void onClick(MarkerClickEvent事件){
//弹出窗口-芬斯特·厄斯泰伦
map.getInfoWindow().open(
奥特库尔德,
新信息窗口内容(图像+名称+“
”
+ort+“
”+kategorie+“
”
+beschreibung+“
”+web));
}
});
}
@凌驾
公共失效(){
}
});
}
map.addOverlay()
是示例代码中变量map
的第一个实例。您确定map
已初始化吗?是,已初始化。同时,我发现,如果我在地理编码器的成功中使用了上述代码,那么它在我的数据库中的Lat Lng倍增中工作得非常好。即使地理编码器将搜索我给它的字符串并返回我可以使用的LatLng对象(我没有),我也可以用db中的坐标绘制标记。如果我移除地理编码器,标记将无法再放置,我将带着我的NullPointerException返回:/