我正在使用 nativescript-google-maps-sdk
构建 NativeScript
应用程序.
我已经为 coordinateTapped
事件添加了一个事件监听器,现在它正在工作,我想在 map 上我点击的位置绘制一个标记。
我在网上或 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);
}
注意:由于没有 nativescript-google-maps
标签,我已使用 google-maps
标签标记此问题。
最佳答案
回答此类问题永远不会太晚。
问题是 args
对象没有 latitude
和 longitude
属性,因此您正在尝试添加标记纬度和经度为未定义
。
在函数 onCooperativeTapped(args)
中,您可以访问两个不同的位置。
首先,args.object.latitude
和 args.object.longitude
。
var lat = args.object.latitude;
var lng = args.object.longitude;
这些属性代表 map 的当前位置(你知道,它的中心)。
第二,args.position.latitude
和 args.position.longitude
。
var lat = args.position.latitude;
var lng = args.position.longitude;
在本例中,这些属性代表您在 map 上点击的实际位置。
此外,这也适用于cooperativeLongPress
。
关于javascript - 在 NativeScript 应用程序中向 map 添加标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41932538/