官方的问题反馈模板粘贴后乱码了,这里简单说说。
问题:
Map组件,marker属性里面,譬如给定150x 150的图标, 那么图内什么地方对准目标点呢?
实际测试发现android和iOS的对齐方式不一致。
iOS --- 图标中间最底部是目标点。 这个符合一般使用习惯,一般marker有个小尖对准目标点,就在中间下方。
Android --- 接近左上角某个神秘的点。 实测发现并不是对齐左上角,而是左上角偏移某个值?
iOS和开发工具的表现一致,也符合使用习惯。
希望Android的地图改改, 与其他一致。
下面定位的微信总部。
代码:
<map id="map" longitude="113.324520" latitude="23.099994" scale="18" controls="{{controls}}" bindcontroltap="controltap" markers="{{markers}}" bindmarkertap="markertap" polyline="{{polyline}}" bindregionchange="regionchange" show-location style="width: 100%; height: {{dinfo.windowHeight}}px;" markers="{{markers}}"></map>
Page({
data: {
markers: [{
iconPath: "/a.png",
id: 0,
latitude: 23.100100,
longitude: 113.324560,
width: 150,
height: 150
}],
},
onLoad: onLoad
})
用到的图标
腾讯地图官方工具
开发工具:
来自Android的图
遇到了类似的问题,marker在Android上偏差有些大
你的问题解决了吗?我现在也遇到这个问题,安卓机上显示marker一大一小
继续补充:
安卓radius需要除一下, 先获取 getSystemInfo里面的pixelRatio。
譬如目前主流安卓机型应该是3,小屏幕一点的是2。
你要显示50米的话,要设定为 50/pixelRatio。
这个应该是bug,但是不能知道微信打算啥时候改。 改完还得判定微信版本号来做不同处理
继续自问自答
安卓似乎 以固定的 15 x 15 marker来计算。当你的marker设置为15 x 15大小时,就对准了图标中间底部。考虑到目前安卓地图放不大,似乎也可以这么用
Circle在小屏幕机器上,观察到有放大2倍的。 结论是和设备屏幕大小有关。
根据上述结论,可以做一些ugly的 workaround
安卓地图还有一些其他问题:
无法放大到18级别,无论是收拾拉大或者attribute设置都不行
circle的半径与设定实际不符合,目前手上的机器测试表明,是设置值的3倍,不确定是否和设备像素尺寸有关。