我正在使用NativeScript构建一个nativescript-google-maps-sdk应用程序。
我已经为coordinateTapped事件添加了一个事件侦听器,现在是工作的,我想在地图上的点击位置绘制一个标记。
我在网上或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标签。
发布于 2019-03-10 01:19:03
回答这样的问题永远不会太晚。
问题是,args对象没有latitude或longitude属性,因此您试图添加一个标记,其纬度和经度为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;在这种情况下,这些属性表示您的点击在地图上的实际位置。
而且,这也适用于coordinateLongPress。
发布于 2017-01-30 15:14:13
嘿@Danoram,您的代码看起来‘n’很好,虽然没有XML文件,但我想您已经使用coordinateEvent传递了onCoordinateTapped函数,比如这里。
<maps:mapView coordinateTapped="onCoordinateTapped" />这对你有好处吗?还是你正经历着某种错误或意外的行为?从你的帖子中还不完全清楚问题在哪里.
https://stackoverflow.com/questions/41932538
复制相似问题