在KmlLayer Android上显示文字

时间:2016-08-26 12:17:01

标签: android google-maps kml

有没有办法在多边形上显示地标名称。

enter image description here

我使用GroundOverlayOptions执行此操作。

GroundOverlayOptions newarkMap = new GroundOverlayOptions()
                                .image(BitmapDescriptorFactory.fromBitmap(textAsBitmap(placemark.getProperty("name"))))
                                .position(polyBuilder.build().getCenter(), 860f, 650f);
                        groundOverlay = map.addGroundOverlay(newarkMap);

但是,我遇到了文字大小的问题。区域在哪里" N"字符。

enter image description here

是否有其他方法可以使用kml在多边形上显示地标名称。

1 个答案:

答案 0 :(得分:0)

默认情况下,如果地标有点几何图形,则只能看到名称标签,因此对于多边形(和线条),名称不会显示。

但是,您可以创建一个包含多边形和点几何体的MultiGeometry(通常是中心点或您要标记的位置,以显示在附近)。如果您不希望显示默认的黄色图钉,只需将带有空IconStyle href元素的样式添加到地标。

<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
        <name>polygon</name>
        <Style>
            <IconStyle>
                <Icon/>
            </IconStyle>
        </Style>
        <MultiGeometry>
            <Point>
                <coordinates>-122.4317195,37.801848</coordinates>
            </Point>
            <Polygon>
                <outerBoundaryIs>
                    <LinearRing>
                        <coordinates>
              -122.43193945401,37.801983684521
              -122.43156413110,37.802032773140
              -122.43149953649,37.801715236748
              -122.43187136387,37.801663491544
              -122.43193945401,37.801983684521
                        </coordinates>
                    </LinearRing>
                </outerBoundaryIs>
            </Polygon>
        </MultiGeometry>
    </Placemark>
</kml>

或者,如果您想通过KML在固定的屏幕位置向地图添加文字,那么您可以创建ScreenOverlay。此related answer使用Google Chart API动态显示ScreenOverlay中的文字。