2017-02-06 23 views
0

Я хочу нарисовать custome текст внутри многоугольника, используя KML-файл. Мой Kml файл для Polygon-Как нарисовать текст custome внутри многоугольника в KML?

<?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://www.opengis.net/kml/2.2"><Document><Style id="White"><PolyStyle><color>64FFFFFF</color></PolyStyle></Style><Placemark><styleUrl>#white</styleUrl><Polygon><outerBoundaryIs><LinearRing><coordinates>-95.27999999999997,30.0175 -95.27166999999997,30.0175 -95.27166999999997,30.01083 -95.27999999999997,30.01083 -95.27999999999997,30.0175</coordinates></LinearRing></outerBoundaryIs></Polygon><ExtendedData><Data name="isColorful">true</Data><Data name="color">white</Data></ExtendedData></Placemark></Document></kml> 

мне не хватает какой-либо тег или свойство, чтобы показать текст в центре полигона. Пожалуйста, помогите.

На самом деле, я хочу показать некоторые данные внутри полигона, я создал KML, используя точки и многоугольник. -I сделал масштаб значка 0, чтобы скрыть значок. он отображает метку имени внутри многоугольника в Google Earth, но не отображается метка в «Google карте». Пожалуйста, смотрите мой пример KML файл

<?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://www.opengis.net/kml/2.2"><Document><Style id="White"><IconStyle> <color>ff00ff00</color>   <colorMode>random</colorMode><scale>0</scale></IconStyle><LabelStyle><scale>0.6</scale></LabelStyle><PolyStyle><color>64FFFFFF</color></PolyStyle></Style><Placemark><name>64,100</name><styleUrl>#White</styleUrl><MultiGeometry><Point><coordinates>-95.27899999999997,30.0172</coordinates></Point><Polygon><outerBoundaryIs><LinearRing><coordinates>-95.27999999999997,30.0175 -95.27166999999997,30.0175 -95.27166999999997,30.01083 -95.27999999999997,30.01083 -95.27999999999997,30.0175</coordinates></LinearRing></outerBoundaryIs></Polygon></MultiGeometry></Placemark><Placemark><name>65,93</name><styleUrl>#White</styleUrl><MultiGeometry><Point><coordinates>-95.27066999999997,29.97053</coordinates></Point><Polygon><outerBoundaryIs><LinearRing><coordinates>-95.27166999999997,29.97083 -95.26333999999997,29.97083 -95.26333999999997,29.96417 -95.27166999999997,29.96417 -95.27166999999997,29.97083</coordinates></LinearRing></outerBoundaryIs></Polygon></MultiGeometry></Placemark></Document></kml> 

ответ

0

Некоторые из элементов в KML неисправны делает его недействительным KML относительно KML 2.2 спецификации. Сначала KML должен быть проверен. Некоторые советы по проверке KML обсуждаются here.

Элемент ExtendedData неверен. Отсутствует необходимый элемент value.

<ExtendedData> 
    <Data name="isColorful">true</Data> 
    <Data name="color">white</Data> 
</ExtendedData> 

Это нужно быть restructued:

<ExtendedData> 
    <Data name="isColorful"> 
     <value>true</value> 
    </Data> 
    <Data name="color"> 
     <value>white</value> 
    </Data> 
</ExtendedData> 

Если KML метка имеет ExtendedData то эти данные поля, отформатированные в читаемом HTML таблицы в описании баллонной всплывающего окна при нажатии.

Если вы хотите переопределить таблицу HTML, добавьте <description> в свою метку KML, которая может содержать разметку HTML. Смотрите раздел описания в KML reference docs.

UPDATE: Если вы хотите, чтобы текст появлялся на полигоне, вам необходимо включить Point и Polygon в MultiGeometry, как вы описали, но также необходимо добавить элемент <name>, добавленный в метку. Текст элемента name будет ярлыком, который отображается в позиции точки. Это работает в Google Планета Земля, но не в Картах Google. KML имеет некоторые ограничения в Картах Google. Если вы хотите добавить текст в центр вашего многоугольника, добавьте маркер метки через API Карт Google. https://developers.google.com/maps/documentation/javascript/examples/marker-labels

+0

Фактически, я хочу показать некоторые данные внутри полигона, я создал KML с помощью с точкой и полигоном. -I сделал масштаб значка 0, чтобы скрыть значок. он отображает метку имени внутри многоугольника в Google Earth, но не отображается метка в «Google карте». –