CodenameOne谷歌地图 - 一些标记没有出现

时间:2016-08-07 19:13:03

标签: google-maps codenameone

使用精彩的原生谷歌地图cn1lib,我试图在地图上放置标记,首先是代表用户的标记,然后是另外一些代表我数据库中对象的标记。第一个标记总是很好地掠过,我可以重新定位它(通过擦除它并在新位置创建一个新标记),但随后的标记不会在地图上显示。我在模拟器或Android设备上没有出现任何错误,但在其他标记上都没有显示。代码如下所示:

class MyClass{
    LinkedList<MapContainer.MapObject> towerMarkers;
    MapContainer towerMap;

    public void displayTowers(ArrayList<HashMap<String,Object>> towers){
        if(towerMarkers == null){
            towerMarkers = new LinkedList<>();
        }else{
            for(MapContainer.MapObject marker: towerMarkers){
                towerMap.removeMapObject(marker);
            }
            towerMarkers.clear();
        }

        for(HashMap<String, Object> obj: towers){
            towerMarkers.add(towerMap.addMarker(EncodedImage.createFromImage(FontImage.createMaterial(
                    FontImage.MATERIAL_SETTINGS_INPUT_ANTENNA, cellTowerMarker, 3), false), 
                    new Coord(Double.parseDouble((String)obj.get("latitude")), Double.parseDouble((String)obj.get("longitude"))), 
                    "", "", null));
        }
    }
...

有效的代码非常相似:

    towerMap.addTapListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent evt) {
                    int x = evt.getX();
                    int y = evt.getY();
                    Coord tapCoord = towerMap.getCoordAtPosition(x, y);
                    if(myLocationMarker != null){
                            towerMap.removeMapObject(myLocationMarker);
                    }
                    myLocationMarker = towerMap.addMarker(EncodedImage.createFromImage(FontImage.createMaterial(FontImage.MATERIAL_LOCATION_ON, userLocationMarker, 4),
                            false), tapCoord, null, null, null);
                    findLongitudeField(f).setText(Double.toString(tapCoord.getLongitude()));
                    findLatitudeField(f).setText(Double.toString(tapCoord.getLatitude()));
                    findBtnUseChosenLocation(f).setEnabled(true);
                }
            });

我注意到的唯一奇怪的事情是当我检查地图标记时,它们全部(包括出现的标记)似乎在完全不同的系统中具有坐标。而不是(35.789 ...,32.1233 ...),他们更喜欢(3897665.88999,4277888.988884),但由于显示的那个也是这样,它似乎不是一个问题

任何帮助将不胜感激!

0 个答案:

没有答案