0

我在 Google 地球中创建了一个使用多边形定义多个区域的 KML 文件。我的计划是在我的 wordpress 网站上使用这个文件,以及用于 wordpress 的“综合谷歌地图插件”。然而,事实证明,虽然它可以工作,但对于开发人员来说,我无法设置中心或缩放。我想放大到 10,并以特定坐标为中心。我用谷歌搜索和研究过,我一直想出一些脚本,但我什至会用它们做什么让我有点困惑。这是我第一次涉足 KML。有什么我可以添加到由谷歌地球生成的 KML 文件中,这将允许我完成这个吗?任何帮助将不胜感激。

4

2 回答 2

0

正如所评论的,当您使用 WP 插件时,您无能为力。

但是,当您在没有插件的情况下构建地图时,请使用地图的选项centerzoom设置缩放和中心。

要防止地图平移到 KML 图层的内容,请将 KML 图层的选项设置preserveViewport为 true。

例子:

map = new google.maps.Map(document.getElementById('map'), {
  mapTypeId: google.maps.MapTypeId.ROADMAP,
  center: new google.maps.LatLng(52.519,13.406),
  zoom: 12
});
new google.maps.KmlLayer('http://example.com/example.xml',
                         {preserveViewport: true, map:map});
于 2013-01-09T03:15:43.370 回答
0

请尝试使用WP 灵活地图。它允许您在 KML 地图上指定缩放,还允许您访问地图对象,以便您可以在加载后设置中心。

加载 KML 文件的简码示例;注意:根据FAQ,我设置了一个 id,稍后会从中派生 JavaScript 全局变量名。[编辑:我是个白痴,我复制了错误的例子!固定的]

[flexiblemap id="exmap" zoom="14" width="500" height="400"
    src="http://snippets.webaware.com.au/maps/example-toronto.kml"]

现在,将此代码添加到插件(或您的主题的functions.php,如果您愿意):

add_filter('flexmap_shortcode_html', 'filterFlxmapShortcodeHtml', 10, 2);

/**
* append our script to the end of the map shortcode's HTML
* @param string $html
* @param array $attrs the shortcode's array of attributes/parameters
* @return string
*/
function filterFlxmapShortcodeHtml($html, $attrs) {
    $html .= <<<HTML
<script>
jQuery(window).load(function() {
    flxmap_exmap.setCenter(new google.maps.LatLng("12.345", "32.109"));
});
</script>

HTML;

    return $html;
}
于 2013-01-09T03:33:39.993 回答