【问题标题】:Unable to bold in Google Earth Balloon Text无法在 Google 地球气球文本中加粗
【发布时间】:2019-01-27 15:59:08
【问题描述】:

我正在尝试使用 KML 在 Google 地球上的气球中格式化文本。无论我尝试哪种 html/css 技巧,我都无法使文本变粗。下面的示例演示了我能够将文本格式化为 Arial Black,但应用 font-family:'Arial Bold' 没有效果。 <b> 标签也不起作用。示例中未显示,我也尝试过<strong>font-weight:bold

此屏幕截图显示了以下代码在 Google 地球中的呈现方式。文本“Unformatted Text”与文本“Arial Bold”和“b tag”具有相同的字体粗细,应该是粗体。但是,“Arial Black”文本按预期以 Arial Black 呈现。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <name>Format Test</name>
    <Style id="test-style">
      <BalloonStyle>
        <text>
          <p style="font-family:'Arial Black';">Arial Black</p> 
          <p style="font-family:'Arial Bold';">Arial Bold</p> 
          <p>This text has a <b>b tag</b></p>
          <p>Unformatted Text</p>
        </text>
      </BalloonStyle>
    </Style>
    <Placemark>
      <name>Test Placemark</name>
      <description><![CDATA['test']]></description>
      <Point>
        <coordinates>
          -76.0,40.0,0
        </coordinates>
      </Point>
      <styleUrl>#test-style</styleUrl>
    </Placemark>
  </Document>
</kml>

【问题讨论】:

  • 你的 HTML 是实体编码的,你用实际的 HTML 标签试过了吗?相关问题/示例:Using <BaloonStyle> and <LableStyle> together
  • 我已更新问题以删除实体编码并包含突出显示我在字体渲染方面遇到的问题的图像。

标签: html css kml google-earth


【解决方案1】:

您的示例 KML 似乎主要适用于我,即使使用编码,也应该在 Google 地球中很好地解码。我得到了如下所示的气球……在 Earth Pro v7(左)和 Earth for web v9(右)中。

这显示了style="font-family:'Arial Black';"&lt;b&gt; 标记都生成粗体文本。 style="font-family:'Arial Bold';" 没有显示为粗体,但我相信这是因为“Arial Bold”是一种不常见的字体,并且似乎仅受某些浏览器支持。

也许您正在寻找的是单独的 font-weight 属性,如下所示:

<p style="font-family:'Arial'; font-weight:'bold'">Arial font, bold weight</p>

我还注意到您的 BalloonStyle/text 标签中没有 $[description] 引用变量,因此您的描述文本没有包含在气球中。

您在哪个版本的地球上看到了这个问题...您能提供一个屏幕截图吗?

【讨论】:

  • 我刚刚用截图更新了最初的问题。我在 Google Earth Web 中对此进行了测试,并且 标记正确呈现。我在 Mac OS X 10.14.2 上使用 Google 地球 7.3.2.5491。我刚刚在 PC 上进行了测试,它可以正确呈现。这似乎是 Mac 版 Google 地球中的错误,而不是代码问题。
  • 是的,在不同平台(PC/Mac)的地球专业版中使用的网络渲染引擎可能有所不同。我相信他们在过去一年中一直在更新渲染工具,所以也许还有一些更新即将到来,希望能够使其跨平台保持一致。
【解决方案2】:

相关问题/示例:Using &lt;BaloonStyle&gt; and &lt;LableStyle&gt; together

您不希望样式被实体编码。即

&lt;p style="font-family:'Arial Black';"&gt; Arial Black &lt;/p&gt;

应该是:

<p style="font-family:'Arial Black';"> Arial Black </p>

这应该符合您的预期:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <name>Format Test</name>
    <Style id="test-style">
      <BalloonStyle>
        <text><![CDATA[<b><font size="+2">$[name]</font></b>
          <br/><br/><font face="Arial Black">$[description]</font><br/>
          <br/>Some other text<br/>
          <b>Some bold text</b><br/>]]>
        </text>
      </BalloonStyle>
    </Style>
    <Placemark>
      <name>Test Placemark</name>
      <description><![CDATA['test']]></description>
      <Point>
        <coordinates>
          -76.0,40.0,0
        </coordinates>
      </Point>
      <styleUrl>#test-style</styleUrl>
    </Placemark>
  </Document>
</kml>

【讨论】:

  • 你是对的,实体编码是不必要的。但是,如果我在 Google 地球中打开您的 KML,“一些其他文本”和“一些粗体文本”的字体是相同的。 “测试”文本以 Arial Black 正确显示(如我的示例所示),但我的目标是显示 Arial Bold 或类似的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多