我有一个点(纬度,经度),例如:33.959295,35.606100,我正在c#中寻找一种方法来检查该点是否在特定路线上(点列表或折线)。我做了一些研究,发现其中isLocationOnEdge
包含的功能Google Maps Geometry Library
确实满足我的需要,但不适用于c#。以下是一些其他语言的示例:
isLocationOnEdge
有没有办法在c#中完成上述要求?
我目前有一个地图,在用户地理位置上显示标记.我有一个文本输入字段设置为Places Auto-complete.当用户搜索城市名称时,会在该位置上放置新标记.然而,旧的凝胶标记仍然存在.我想删除旧标记或移动它,因此地图上只有1个标记.我怎样才能做到这一点?
这是我的代码:
<html>
<head>
<script>
var map;
function initialize() {
var mapOptions = {
zoom: 12
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
// Get GEOLOCATION
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
map.setCenter(pos);
var marker = new google.maps.Marker({
position: pos,
map: map,
draggable:true
});
}, function() {
handleNoGeolocation(true);
});
} else {
// Browser doesn't support Geolocation
handleNoGeolocation(false);
}
function handleNoGeolocation(errorFlag) {
if (errorFlag) {
var content = 'Error: The Geolocation service failed.';
} else { …
Run Code Online (Sandbox Code Playgroud) javascript google-maps google-maps-api-3 google-places-api google-geolocation
我有一个应用程序,可以打开地图并用标记缩放我的位置,然后如果我长按任何位置,它会将该位置保存在数据库中,一切正常,但我无法管理的一件事是在两个位置标记之间绘制一条路径线。
这是三个全局变量
Location myLocation;
LatLng onmaplongclicklastlatlng;
private GoogleMap mMap;
Run Code Online (Sandbox Code Playgroud)
mylocation
由我分配LocationListener
,并且onmaplongclicklastlatlng
当我长按地图上的任何位置时分配。
将标记放置在两个位置上已完成,我已经有了要在其上画线的两个点。
我只需要在这两个位置之间画一条线(我当前的位置在myLocation变量中定期更新)
每当我长按地图时,onmaplongclicklastlatlng就会发生变化。
整个代码已完成,我有一个button
想要用于该行的代码,因为我可以通过此方法draw
访问这两个位置,其他代码无需更改。variables
button
public void getLine(View view) {
// need to draw a line here from user gps posiution to the marker location
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了很多教程,但由于某种原因它们不起作用,任何帮助将不胜感激。
哦,最后但并非最不重要的一点
onmaplongclicklastlatlng
Run Code Online (Sandbox Code Playgroud)
是 LatLng 且
myLocation
Run Code Online (Sandbox Code Playgroud)
是一个位置
但它们可以互换以适应目的
ex. Location maplocation = new Location(onmaplongclicklastlatlng
.latitude, onmaplongclicklastlatlng.longitude);
Run Code Online (Sandbox Code Playgroud)
和
Latlng myLatLng = new LatLng(myLocation.getLatitude(), myLocation.getLongitude());
Run Code Online (Sandbox Code Playgroud)
正如我所说,任何帮助将不胜感激。如果还需要任何其他信息,请告诉我,我将编辑问题。
我正在尝试在以下页面中使用Google Maps API:https: //developers.google.com/maps/documentation/javascript/geolocation
我要做的就是将代码复制到该页面上并将其粘贴到我网站上的测试页面上。 http://kwt-events-com.stackstaging.com/content/api/maps.php
我有一个API密钥。我用了它,页面在google map上加载的很好。
问题是它无法检测到显示此错误的位置:“错误:地理位置服务失败”
我尝试过的 是:允许在浏览器和计算机中进行位置检测。我在同一台机器“ macos”上尝试了不同的浏览器。我在另一台计算机“另一台PC和另一台Mac”上尝试过。我在电话“ ios”上尝试过。
同样的错误
我知道我无法发布所有代码,但是病了,所以你们可以帮助我
<!DOCTYPE html>
<html>
<head>
<title>Geolocation</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<style>
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head> …
Run Code Online (Sandbox Code Playgroud) 我在 Angular 6 中构建了一个 PWA,并打算将 Google Maps API 用于地理定位。然而,我很快意识到 PWA 中的地理定位服务仅在用户与 UI 交互以故意请求他们的位置时才起作用。然而,我的应用程序应该在用户开车时在后台跟踪他们的位置。因此,当他们锁定屏幕或转到其他应用程序时,它仍应跟踪他们。作为记录,这是一个私人应用程序,用户完全知道他们正在被跟踪。因此,我使用 Cordova 将 PWA 转换为混合应用程序。到目前为止,一切都与我已经拥有的一样(模拟很好,等等),但我似乎无法弄清楚如何添加地理定位部分。我已经安装了这个插件,它似乎已安装并可用。我见过的所有示例都使用 Ionic(此时我不需要它)并且适用于用户单击按钮以获取其位置的场景,但我需要它在地理定位内容位于服务中并开始的地方他们登录后在后台运行。我似乎无法找到显示如何执行此操作的内容。这是我认为我应该做的:
(这并不完整,我只是在此处粘贴了来自 GitHub 的示例代码,并打算在我知道它实际上被调用时用“东西”填充它)
_services/geolocation.service.ts:
import { Injectable } from '@angular/core';
import { Component, ViewChild } from '@angular/core';
declare var cordova: any;
@Injectable()
export class GeolocationService {
startBackgroundGeolocation() {
console.log("Geolocation service called...");
cordova.plugins.BackgroundGeolocation.configure({
locationProvider: cordova.plugins.BackgroundGeolocation.ACTIVITY_PROVIDER,
desiredAccuracy: cordova.plugins.BackgroundGeolocation.HIGH_ACCURACY,
stationaryRadius: 50,
distanceFilter: 50,
notificationTitle: 'Background tracking',
notificationText: 'enabled',
debug: true,
interval: 10000,
fastestInterval: 5000,
activitiesInterval: 10000,
url: 'http://192.168.0.3:3000/location',
httpHeaders: {
'X-FOO': 'bar'
}, …
Run Code Online (Sandbox Code Playgroud) android ×2
google-maps ×2
angular ×1
api ×1
c# ×1
cordova ×1
geolocation ×1
google-api ×1
html ×1
java ×1
javascript ×1
php ×1