如何在谷歌地图中显示静态图像?

时间:2012-05-23 05:11:04

标签: google-maps-api-3

基本上,我想在我的地图中间显示一个十字准线,当用户平移时,它会留在中心。

这正是我所说的,除了这个例子实施得很差......当你快速平移时,它非常缓慢和跳跃。

http://www.daftlogic.com/sandbox-google-maps-centre-crosshairs.htm

有没有人对使用v3 maps api实现此方法有任何想法?

1 个答案:

答案 0 :(得分:2)

到目前为止,我见过的最流畅的方法是使用KML文件。 This is the original

我将KML剥离到最低限度:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
      <ScreenOverlay>
        <Icon>
          <href>http://code.google.com/apis/kml/documentation/crosshairs.png</href>
        </Icon>
        <overlayXY x="0.5" y="0.5" xunits="fraction" yunits="fraction"/>
        <screenXY x="0.5" y="0.5" xunits="fraction" yunits="fraction"/>
        <rotationXY x="0.5" y="0.5" xunits="fraction" yunits="fraction"/>
        <size x="0" y="0" xunits="pixels" yunits="pixels"/>
      </ScreenOverlay>
  </Document>
</kml>

在地图代码中,您需要做的就是使用选项preserveViewport=true设置KML图层。请注意,如果您在本地进行测试,则仍必须将KML文件上载到公共位置。

  var crosshairLayer = new google.maps.KmlLayer( 
      'http://freezoo.alwaysdata.net/justcrosshair2.kml', 
      {preserveViewport: true});

    crosshairLayer.setMap(map);

的jsfiddle style 1 style 2

(它们是两个KML文件中的两个独立图标。)