我正在使用nativescript-google-maps-sdk
构建NativeScript
个应用。
我为coordinateTapped
事件添加了一个eventlistener,现在正在工作我想在地图上点击我点击的位置标记。
我无法在线或在sdk文档中找到此示例。 我觉得我很亲密,只是做了一些小修改。
var mapsModule = require("nativescript-google-maps-sdk");
function onCoordinateTapped(args) {
console.log("coordinate tapped!");
var mapView = args.object;
var marker = new mapsModule.Marker();
marker.position = mapsModule.Position.positionFromLatLng(args.latitude,args.longitude);
mapView.addMarker(marker);
}
注意:我已使用google-maps
标记标记了此问题,因为没有nativescript-google-maps
标记。
答案 0 :(得分:1)
嘿@Danoram你的代码看起来没什么问题,虽然没有XML文件我想你已经使用 coordinateEvent 来传递回退函数 onCoordinateTapped ,如here
<maps:mapView coordinateTapped="onCoordinateTapped" />
这对您有用还是您遇到某种错误/意外行为?从您的帖子中发现问题并不完全清楚......
答案 1 :(得分:0)
回答此类问题永远为时不晚。
问题是args
对象没有latitude
或longitude
属性,因此您尝试添加经度和纬度为{{1}的标记}。
在函数undefined
中,您可以访问两个不同的位置。
首先,onCoordinateTapped(args)
和args.object.latitude
。
args.object.longitude
这些属性代表地图的当前位置(您知道它的中心)。
第二,var lat = args.object.latitude;
var lng = args.object.longitude;
和args.position.latitude
。
args.position.longitude
在这种情况下,这些属性表示您在地图上实际点击的位置。
此外,它在var lat = args.position.latitude;
var lng = args.position.longitude;
上有效。