2009-10-02 115 views
0

我有SVG文件,我想其中:在谷歌地图投影SVG的只有一些部分

  1. 出口和与平欧式投影定制地面叠加使用(econym.org.uk/gmap/ example_custommapflat.htm)。
  2. 采取仅多边形和项目他们在谷歌地图

我的SVG文件有一些共同的规律:

  1. 他们都4096x4096px
  2. 地图的主要对象集中

我已经做了一些实验,其中一个可以在这里看到 - http://dev.ondigital.eu/map/map.php *(从URL中删除map.php以查看svg,png和其他文件)。正如你所看到的,问题是,多边形点正在投影在左侧而不是居中+高宽比绝对不正确。

因此问题是:如何计算的纵横比,当:

  1. SVG的viewBox属性是本
  2. SVG的viewBox属性不存在和/或每个多边形必须被转换(如在我们的map.svg)。

那么偏移量(对象居中)呢?

预先感谢您!

*不与IE测试

回答

0

有没有可能是你混淆DivPixels与ContainerPixels?

尝试改变

var latlng = self.projection.fromPixelToLatLng(
     new GPoint(point[0], point[1]), 
     self.map.getZoom() 
    ); 

var latlng = self.map.fromContainerPixelToLatLng(
     new GPoint(parseFloat(point[0]), parseFloat(point[1])) 
    ); 

在这种情况下,你使用字符串而不是数字可能不会导致任何问题,然而,但事实上这是一个好主意现在就使用Numbers,避免+运算符在你的项目中稍后在你的坐标系中进行String concatenation而不是添加的可能性。