Android 使用jts-1.8 报错 java.lang.NoClassDefFoundError: com.vividsolutions.jts.geom.Point

在项目中使用就jts,使用代码混淆后(未对就jts做混淆)报错,错误内容 java.langNoClassDefFoundError:com.vividsolutions.jts.geom.point,
不使用代码混淆不报错,哪位能指点一下!

1个回答

jts-1.8 不能混淆,对照下官网、看看proguard-rules.pro里面是不是漏了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Geotools 创建shape文件报错,无法设置中文属性

feature.setAttribute(0, polygon.getCode()); 这个属性名乱码,如果设置成中文就报错 eg: feature.setAttribute("图斑编码", polygon.getCode()); ``` package com.kero99.utils; /** * 创建shape文件 * @author ygc * */ import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Serializable; import java.io.StringReader; import java.io.StringWriter; import java.net.MalformedURLException; import java.net.URLEncoder; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; import org.geotools.data.FeatureWriter; import org.geotools.data.FileDataStore; import org.geotools.data.FileDataStoreFinder; import org.geotools.data.Transaction; import org.geotools.data.shapefile.ShapefileDataStore; import org.geotools.data.shapefile.ShapefileDataStoreFactory; import org.geotools.data.shapefile.dbf.DbaseFileHeader; import org.geotools.data.shapefile.dbf.DbaseFileReader; import org.geotools.data.shapefile.files.ShpFiles; import org.geotools.data.simple.SimpleFeatureCollection; import org.geotools.data.simple.SimpleFeatureIterator; import org.geotools.data.simple.SimpleFeatureSource; import org.geotools.feature.IllegalAttributeException; import org.geotools.feature.simple.SimpleFeatureBuilder; import org.geotools.feature.simple.SimpleFeatureTypeBuilder; import org.geotools.feature.type.Types; import org.geotools.geojson.feature.FeatureJSON; import org.geotools.geojson.geom.GeometryJSON; import org.geotools.referencing.crs.DefaultGeographicCRS; import org.geotools.util.Converters; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.GeometryFactory; import org.locationtech.jts.geom.Point; import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.opengis.feature.type.AttributeDescriptor; import com.kero99.patterns.IShape; import com.kero99.pojo.Zdesignpolygon; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.MultiPolygon; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** * Geotools文档:http://docs.geotools.org/latest/javadocs/ * 创建shape文件 * @author ygc * */ public class createShapeFile { public static void main(String[] args) throws IOException { //创建文件路径 String path="C:\\新建文件夹\\y.shp"; File file=new File(path); //创建坐标 String str="{\"type\":\"MultiPolygon\",\"coordinates\":[[[[125.00088033726706,43.40147359017337],[124.99679348328742,43.401096616676305],[124.99694837503591,43.40186442431018],[124.99750584741349,43.401955866321565],[124.99803787708493,43.40230992248794],[124.9980525639301,43.40490599341744],[124.99939124766493,43.4039525077194],[124.999703712491,43.4048699875539],[124.99866141203354,43.40606649155232],[125.00126143620331,43.40562431171862],[125.00257777597052,43.403552077651824],[125.00295876012552,43.40274710316431],[125.00307123554897,43.40186767450569],[125.00088033726706,43.40147359017337]]]]}"; JSONObject jsonObject = JSONObject.fromObject(str); JSONArray jsonArray = jsonObject.getJSONArray("coordinates"); System.out.println(jsonArray); //创建对象添加属性信息 Zdesignpolygon polygon=new Zdesignpolygon(); polygon.setCode("106"); polygon.setCoordinate(str); polygon.setMark("tktt3"); polygon.setName("土坎梯田"); polygon.setState("坡耕地"); polygon.setNumber(12.64); polygon.setSlope(9.0); //添加创建的路径 Map<String, Serializable> params = new HashMap<String, Serializable>(); params.put(ShapefileDataStoreFactory.URLP.key, file.toURI().toURL()); ShapefileDataStoreFactory sf = new ShapefileDataStoreFactory(); //创建shape文件数据仓库根据工厂 ShapefileDataStore ds = (ShapefileDataStore) sf.createDataStore(file.toURI().toURL()); ds.setCharset(Charset.forName("GBK")); //ShapefileDataStore ds = (ShapefileDataStore) new ShapefileDataStoreFactory().createDataStore(params); //创建要素模板 SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder(); //设置wgs84格式 tb.setCRS(DefaultGeographicCRS.WGS84); //设置全局状态 tb.setName("shapefile"); //添加属性类型 tb.add("图斑编码", String.class); tb.add("措施代码", String.class); tb.add("措施名称", String.class); tb.add("利用现状", String.class); tb.add("措施数量", Double.class); tb.add("坡度", Double.class); tb.add("the_geom", MultiPolygon.class); //设置FeatureType数据存储。该方法将删除任何现有的本地资源或抛出IOException如果远程数据存储。 //这个元素附加源和附加Javadoc,因此没有能找到Javadoc。 ds.createSchema(tb.buildFeatureType()); //设置编码格式 //     类似的API FeatureReader后,调查组成员功能使用next()你可以叫删除()或修改后写()。 // 如果你不调用这两个方法调用之前hasNext(),或下(),这个功能将被修改的。 //   这个API允许修改,编写和基于过滤器的修改。请参阅ContentDataStore使用这个API实现共同opperations的例子。 // FeatureWriter<SimpleFeatureType, SimpleFeature> featureWriter = ds.getFeatureWriter(ds.getTypeNames()[0], Transaction.AUTO_COMMIT); FeatureWriter<SimpleFeatureType, SimpleFeature> featureWriter = ds.getFeatureWriter(ds.getTypeNames()[0], null); // FeatureWriter<SimpleFeatureType, SimpleFeature> featureWriter = ds.getFeatureWriter(Transaction.AUTO_COMMIT); SimpleFeature feature = featureWriter.next(); // 取出特征里面的属性集合 //添加属性值和坐标 feature.setAttribute(0, polygon.getCode()); feature.setAttribute(1, polygon.getMark()); feature.setAttribute(2, polygon.getName()); feature.setAttribute(3, polygon.getState()); feature.setAttribute(4, polygon.getNumber()); feature.setAttribute(5, polygon.getSlope()); //转换geojson GeometryJSON geometryJSON2 = new GeometryJSON(15); Geometry geometry = geometryJSON2.read(new StringReader(polygon.getCoordinate())); feature.setAttribute("the_geom", geometry); featureWriter.write(); featureWriter.close(); ds.dispose(); } protected boolean validating; protected Map<String, String> index; protected SimpleFeatureType featureType; protected Object[] values; public SimpleFeatureType getFeatureType() { return this.featureType; } // public void setAttribute(String name, Object value) { // String idx = this.index.get(name); // if (idx == null) { // throw new IllegalAttributeException("Unknown attribute " + name); // } else { // this.setAttribute(idx, value); // } // } } ```

有没有用java操作gis的大佬,如何求两个边界不一致的部分的,请教了!

1.我调用的jts api的symDifference方法 /** * 各部门提交的本辖区行政边界是否一致,如不一致在系统中反馈出不一致的部分, * 并通知相关辖区客户达成一致后进行修改; */ public static boolean regionCheck(String wellKnownText, List<String> wellKnownTexts) throws ParseException { //获取面 Polygon polygon = getPolygon(wellKnownText); //边界 Geometry boundary = polygon.getBoundary(); for (String wkts : wellKnownTexts) { Polygon polygon2 = getPolygon(wkts); //getBoundary返回边界,如果Geometry 为空,则返回适当尺寸的空几何。 Geometry boundary2 = polygon2.getBoundary(); if (!boundary.equals(boundary2)) { Geometry Geometry=polygon.symDifference(polygon2); System.err.println(Geometry); return false; } } return true; } 这是测试方法 @Test public void regionCheck() { String wkt = "POLYGON ((-224350635455.002197265625 -111836039853.78741455078125, -244254937379.54150390625 -107965758924.015777587890625, -257524471995.900909423828125 -104648375269.926025390625, -274664287542.031982421875 -99119402513.109375, -288486719434.072998046875 -98566505237.427764892578125, -300650459499.06939697265625 -100778094340.154388427734375, -319209182509.980224609375 -120093567998.94781494140625, -326636631456.106689453125 -184818480243.764556884765625, -334930090591.3314208984375 -281575503488.0526123046875, -190071004362.740203857421875 -325254388266.902587890625, -60140144577.55352783203125 -266094379768.966400146484375, -72732287430.19964599609375 -198319022650.31201171875, -78938651950.729461669921875 -164914178319.225250244140625, -180200885637.218505859375 -109383275975.02154541015625, -224350635455.002197265625 -111836039853.78741455078125))"; //String wkt1 = "LINESTRING (35510272.308399997651577 221713.426899999380112, 35510586.63400000333786 221877.468800000846386)"; List<String> list = new ArrayList<>(); list.add("POLYGON ((-60140144577.55352783203125 -266094379768.966461181640625, -78938651950.729461669921875 -164914178319.225250244140625, -180200885637.218505859375 -109383275975.02154541015625, -181777545227.515472412109375 -108518656199.69744873046875, -315025788666.7921142578125 -83638278794.02349853515625, -319209182509.98016357421875 -120093567998.94781494140625, -326636631456.10675048828125 -184818480243.764556884765625, -334930090591.3314208984375 -281575503488.0526123046875, -190071004362.740203857421875 -325254388266.902587890625, -60140144577.55352783203125 -266094379768.966461181640625))"); try { boolean b = checkedUtil.regionCheck(wkt, list); } catch (ParseException e) { e.printStackTrace(); } } 这是执行后得到的结果 MULTIPOLYGON (((-224350635455.0022 -111836039853.78741, -244254937379.5415 -107965758924.01578, -257524471995.9009 -104648375269.92603, -274664287542.03198 -99119402513.10938, -288486719434.073 -98566505237.42776, -300650459499.0694 -100778094340.15439, -319209182509.98016 -120093567998.94774, -315025788666.7921 -83638278794.0235, -181777545227.51547 -108518656199.69745, -180200885637.2185 -109383275975.02155, -224350635455.0022 -111836039853.78741)), ((-322907561014.1465 -152322294963.8256, -319209182509.9802 -120093567998.94781, -319209182509.98016 -120093567998.94774, -319209182509.98016 -120093567998.94781, -322907561014.1465 -152322294963.8256)), ((-322907561014.1465 -152322294963.8256, -326636631456.1067 -184818480243.76456, -334930090591.3314 -281575503488.0526, -326636631456.10675 -184818480243.76456, -322907561014.1465 -152322294963.8256)), ((-190071004362.7402 -325254388266.9026, -60140144577.553535 -266094379768.9664, -60140144577.55353 -266094379768.96646, -190071004362.7402 -325254388266.9026)), ((-78938651950.72946 -164914178319.22525, -72732287430.19965 -198319022650.312, -60140144577.55353 -266094379768.9664, -60140144577.553535 -266094379768.9664, -78938651950.72946 -164914178319.22525))) 可是测试的这两个面是用argis画的,不一致的部分也只有一个面呀 实在没招了,求大佬指教

<JDBC> <BEA-001153> <Forcibly releasing inactive connection "weblogic.jdbc.wrap

<2012-3-15 下午04时04分40秒 CST> <Warning> <JDBC> <BEA-001153> <Forcibly releasing inactive connection "weblogic.jdbc.wrapper.PoolConnection_com_informix_jdbc_IfxSqliConnect@134" back into the connection pool "quotationDataSource", currently reserved by: java.lang.Exception at weblogic.jdbc.common.internal.ConnectionEnv.setup(ConnectionEnv.java:293) at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:306) at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:284) at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:466) at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:357) at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:83) at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:96) at weblogic.jdbc.pool.Driver.connect(Driver.java:150) at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:647) at weblogic.jdbc.jts.Driver.connect(Driver.java:137) at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:359) at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:82) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446) at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167) at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142) at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85) at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353) at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:558) at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374) at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635) at com.sinosoft.quotation.simulater.service.spring.SimulaterServiceSpringImpl$$EnhancerByCGLIB$$9a0cc6c9.StartSimulater(<generated>) at com.sinosoft.quotation.simulater.service.spring.TimeTaskDispatch.executeInternal(TimeTaskDispatch.java:66) at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)

Geometry 使用 buffer 方法 生成缓冲区,如何限定传入的diatance的单位为米?

代码如下: ``` JsonObject jsonObject = new JsonParser().parse("{\"type\":\"LineString\",\"coordinates\":[[120.10956868343928,32.28193041706498],[120.03266438656428,31.106393307689977]]}").getAsJsonObject(); //再转JsonArray 加上数据头 JsonArray jsonArray = jsonObject.getAsJsonArray("coordinates"); Coordinate coorArr[] = new Coordinate[jsonArray.size()]; for (int i = 0; i < jsonArray.size(); i++) { String pointArr[] = jsonArray.get(i).toString().replace("[", "").replace("]", "").split(","); if (pointArr != null && pointArr.length == 2) { Coordinate coord = new Coordinate(Double.parseDouble(pointArr[0]),Double.parseDouble(pointArr[1])); coorArr[i]=coord; } } GeometryFactory geoFac = new GeometryFactory(); LineString createLineString = geoFac.createLineString(coorArr); Geometry buffer = createLineString.buffer(100); System.out.println(buffer); Coordinate coord = new Coordinate(Double.parseDouble("120.10956868343929"), Double.parseDouble("32.28193041706498")); Point point=geoFac.createPoint(coord); System.out.println( point.within(buffer)); ``` createLineString.buffer(100); 这个 buffer方法,是传入一个double类型的diatance,找不到相关api,不知道这个值的单位,求问如果以米为单位怎么设定?是不是和这个方法的两个重载方法有关 buffer(distance, quadrantSegments)和buffer(distance, quadrantSegments, endCapStyle) 网上实在找不到相关api

在Go中的OpenGIS WKT和WKB之间转换

<div class="post-text" itemprop="text"> <p>I'm looking for a simple way to convert between WKT and WKB forms in Go.</p> <p>I'm aware that there are some libraries that add all kinds of functionalities and types, such as <a href="https://github.com/twpayne/go-geom" rel="nofollow noreferrer">go-geom</a>.</p> <p>I want to only work with strings however, so I'm looking for a way to convert something like <code>0103000000010000000500000000000000000000000000000000000000000000000000F03F0000000000000000000000000000F03F000000000000F03F0000000000000000000000000000F03F00000000000000000000000000000000</code></p> <p>Into something like <code>POLYGON((0 0,1 0,1 1,0 1,0 0))</code></p> <p>Thanks</p> </div>

JTS 中TopologyPreservingSimplifier中的具体实现

看JTS 中com.vividsolutions.jts.simplify.TopologyPreservingSimplifier中的拓扑保持化简的源码实现,其说是通过 maximum-distance difference algorithm 实现的,那么其具体是通过什么算法实现的呢,有木有相关说明的文档推荐或一些论文推荐的

GeoMesa ,SparkJTS求点到线的最短距离

GeoMesa 中,使用Spark JTS,传入一段线,接收一个点,求点到线的最短距离。Java

使用ftp和php脚本将图像上传到服务器时出错,在ftp_put()登录时出错

<div class="post-text" itemprop="text"> <p>I have a script written in php which basically uploads images to a server. I'm uploading this script onto my server using an ftp account credentials. However when I try to access it, it gives me login error. Here's the error log:</p> <blockquote> <p>[09-Apr-2014 19:00:01 Asia/Kolkata] PHP Warning: ftp_login(): Sorry, cleartext sessions are not accepted on this server. in /home/gameeon/public_html/jts/local_upload.php on line 8 [09-Apr-2014 19:01:33 Asia/Kolkata] PHP Warning: ftp_login(): Sorry, cleartext sessions are not accepted on this server. in /home/gameeon/public_html/jts/local_upload.php on line 8 [09-Apr-2014 19:01:55 Asia/Kolkata] PHP Warning: ftp_login(): Sorry, cleartext sessions are not accepted on this server. in /home/gameeon/public_html/jts/local_upload.php on line 8 [09-Apr-2014 19:02:21 Asia/Kolkata] PHP Warning: ftp_login(): Sorry, cleartext sessions are not accepted on this server. in /home/gameeon/public_html/jts/local_upload.php on line 8 [09-Apr-2014 19:03:59 Asia/Kolkata] PHP Warning: ftp_login(): Sorry, cleartext sessions are not accepted on this server. in /home/gameeon/public_html/jts/local_upload.php on line 8</p> </blockquote> <p>My code is as follows:</p> <pre><code>&lt;?php // connect and login to FTP server $ftp_server = "ftp.gameeon.in"; // enter the ftp host name $ftp_username = "temp@gameeon.in"; // put your ftp user name $ftp_userpass = "********"; // put your ftp password $ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server"); $login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass); /// put the path of your image folder in your remote server i.e: $ftp_upload_path="public_html/img/"; /// put the path of your image folder in your local machine: $files = glob("E:/upload_images/*.*"); foreach($files as $fl) { $fl_arr = explode("/",$fl); $cn=count($fl_arr); $num=$cn-1; $file=$fl_arr[$num]; // upload file // $fl = full path of localimages if (ftp_put($ftp_conn, $ftp_upload_path.$file,$fl, FTP_ASCII)) { echo "Successfully uploaded $file. &lt;br/&gt;"; } else { echo "Error uploading $file.&lt;br/&gt;"; } sleep(3); /// pausing the code for 3 secs before next upload } // close connection ftp_close($ftp_conn); ?&gt; </code></pre> <p>I'm getting an error on this line no. 8 which is:</p> <pre><code>$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass); </code></pre> </div>

有没有做GIS开发的大佬,相知道LineString的自相交和面的自相交是怎么验证的

查遍了JTS的Api,一直没找到方法,两个个几何对象的倒有,但一个几何对象的没有,另外,MULTIPOLYGON该如何打散成多个POLYGON的

shell脚本在控制台上工作,但不是从php页面

<div class="post-text" itemprop="text"> <p>I have a problem, I need to launch a .sh script from a web page, just does not go, starting from the terminal the script works and does what it has to do, but from the web no, but in the ' Apache2 error.log does not make any mistakes, I do not understand what it can be ..</p> <p>HTML: </p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code"> <pre class="snippet-code-html lang-html prettyprint-override"><code> &lt;tr&gt; &lt;td&gt;JTS&lt;/td&gt; &lt;td&gt; &lt;form action="JTSstart.php"&gt; &lt;input type="submit" value="START"&gt; &lt;/form&gt; &lt;/td&gt; &lt;td&gt; &lt;form action="JTSres.php"&gt; &lt;input type="submit" value="RESTART"&gt; &lt;/form&gt; &lt;/td&gt; &lt;td&gt; &lt;form action="JTSstop.php"&gt; &lt;input type="submit" value="STOP"&gt; &lt;/form&gt; &lt;/td&gt; &lt;/tr&gt;</code></pre> </div> </div> <p>PHP:</p> <p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code"> <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;?php echo exec('bash JTSstop.sh'); sleep(5); header("Location: 5ondimba.html"); ?&gt;</code></pre> </div> </div> <p>SH:</p> <p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code"> <pre class="snippet-code-html lang-html prettyprint-override"><code>#!/bin/bash cd /home/otaku/JTS3ServerMod_HostingEdition ./jts3servermod_startscript.sh stop</code></pre> </div> </div> <p>What I have tried / tested: 1) The exec command, such as shell_exec, is not disabled in the php setup. 2) The files were converted with dos2unix. 3) bash -x on the script and does not report any kind of error (in fact, from console works).</p> <p>what could it be?? how can i make it work? Thanks so much!</p> </div>

jsp 和 java的主要区别是什么

希望能给简单说说,谢谢了 [b]问题补充:[/b] 我查了一下网 是j2ee有13种技术吧 支撑J2EE的13种核心技术:JDBC, JNDI, EJBs, RMI, JSP, Java servlets, XML, JMS, Java IDL, JTS, JTA, JavaMail 和 JAF,同时还将描述在何时、何处需要使用这些技术。当然,还要介绍这些。。。。。。。。 好像这不是java 和jsp语言的关系吧 [b]问题补充:[/b] 主要是想了解一下 <% %>中的代码和 java 在语言上的区别

如何获取两点之间的坐标点?

有两个坐标文件,一个是里程桩坐标,一个是道路坐标,现在想要获取两个里程 桩点之间道路坐标点并将里程桩号较小的坐标信息添加到道路坐标信息中。 ![图片说明](https://img-ask.csdn.net/upload/202002/24/1582526613_361656.png),红色为里程桩坐标显示,蓝色为道路坐标显示。

如何通过距离来计算对应的经纬度

如何通过距离来计算对应的经纬度。 最好有java的代码。多谢多谢

LBS方案中的经纬度距离计算

我现在有一个点的GPS坐标,想计算其它多个GPS坐标与这个点的距离,有没有什么好的方案, 需求是想查看一个人周边500米内的人,所有人的坐标都有,我目前的方案是用GEOHASH+redis 存储的,但在计算距离时用函数一个个算效率太低了。有一个思路是利用geotools和JTS算法实现缓冲区和多点的交集,但不知道如何利用Geotolls 构建GPS坐标体系,求教在计算多点与单点之间距离上,有没有更高效率的方案或算法。E

我写的socket监听过一段时间就需要重新启动一下程序是什么原因

private void StartReceive() { string msg = null; IPEndPoint iep = new IPEndPoint(IPAddress.Parse(PublicVariables.BJIP), PublicVariables.PORT); socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Bind(iep); socket.Listen(PublicVariables.JTS); Socket newSocket; while (true) { try { newSocket = socket.Accept(); byte[] byteMessage = new byte[1024 * 1024]; int js = 1; js = newSocket.Receive(byteMessage, byteMessage.Length, 0); Console.WriteLine(js); msg = Encoding.UTF8.GetString(byteMessage); msg = msg.Replace("\0", ""); PostGetData pgd = new PostGetData(); string cz = msg.Substring(0, 4); if (cz.Equals("gxsj")) { NetworkStream stream = new NetworkStream(newSocket); bool result = pgd.SendFile("caipu.db3", stream); stream.Close(); newSocket.Dispose(); msg = null; } else if (cz.Equals("gkkt")) { string ctInfo = null; byte[] bytes = null; ctInfo = pgd.GetCtInfo(); bytes = new byte[1024 * 1024]; bytes = Encoding.UTF8.GetBytes(ctInfo); newSocket.Send(bytes); //newSocket.Close(); newSocket.Dispose(); msg = null; } else if (cz.Equals("gxtp")) { NetworkStream stream = new NetworkStream(newSocket); bool result = pgd.FsFile("image.zip", stream); stream.Close(); newSocket.Close(); newSocket.Dispose(); msg = null; } else if (cz.Equals("gkdc")) { string data = msg.Substring(6); Regex regex = new Regex("<<"); string[] strs = regex.Split(data); SqlHelper helper = new SqlHelper(); byte[] bytes = new byte[1024 * 1024]; try { string result = helper.Gkdc(strs); bytes = Encoding.UTF8.GetBytes(result); if (newSocket.Connected) { newSocket.Send(bytes); } newSocket.Dispose(); msg = null; } catch { bytes = Encoding.UTF8.GetBytes("error"); if (newSocket.Connected) { newSocket.Send(bytes); } newSocket.Dispose(); msg = null; continue; } } else if (cz.Equals("ckxf")) { string[] strs = msg.Split('@'); string str = strs[0].Substring(6); SqlHelper helper = new SqlHelper(); string result = helper.ckxf(str); NetworkStream stream = new NetworkStream(newSocket); bool results = pgd.FsFile(str + ".log", stream); stream.Close(); newSocket.Dispose(); msg = null; } else if (cz.Equals("gqcp")) { SqlHelper helper = new SqlHelper(); List<string> lists = helper.gqcp(); TxtFileManager tfm = new TxtFileManager(); tfm.DelFile("gqcp.log"); if (lists.Count > 0) { for (int i = 0; i < lists.Count; i++) { tfm.Write("gqcp.log", lists[i].ToString()); } } else { tfm.Write("gqcp.log", "null"); } NetworkStream stream = new NetworkStream(newSocket); bool results = pgd.FsFile("gqcp.log", stream); stream.Close(); newSocket.Dispose(); msg = null; } else if (cz.Equals("tcsl")) { string data = msg.Substring(6); Regex regex = new Regex("<<"); string[] strs = regex.Split(data); SqlHelper helper = new SqlHelper(); string result = helper.GetTcsl(strs[0], strs[1], strs[2]); byte[] bytes = new byte[1024 * 1024]; bytes = Encoding.UTF8.GetBytes(result); newSocket.Send(bytes); newSocket.Dispose(); msg = null; } else if (cz.Equals("gktc")) { string data = msg.Substring(6); Regex regex = new Regex("<<"); string[] strs = regex.Split(data); SqlHelper helper = new SqlHelper(); string result = helper.Gktc(strs); byte[] bytes = new byte[1024 * 1024]; bytes = Encoding.UTF8.GetBytes(result); newSocket.Send(bytes); newSocket.Dispose(); msg = null; } } catch (Exception ex) { TxtFileManager tfm = new TxtFileManager(); tfm.Write("sys.log", ex.ToString() + " " + DateTime.Now.ToString()); continue; } } }

点到各点的距离最短在哪

给你二维坐标轴上许多点,在二维坐标轴上找一点,使该点到个点距离最短,**只能沿着x,y方向**,怎么找,什么原理 麻烦各位解答一下

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

课程主要面向嵌入式Linux初学者、工程师、学生 主要从一下几方面进行讲解: 1.linux学习路线、基本命令、高级命令 2.shell、vi及vim入门讲解 3.软件安装下载、NFS、Samba、FTP等服务器配置及使用

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

Python代码实现飞机大战

文章目录经典飞机大战一.游戏设定二.我方飞机三.敌方飞机四.发射子弹五.发放补给包六.主模块 经典飞机大战 源代码以及素材资料(图片,音频)可从下面的github中下载: 飞机大战源代码以及素材资料github项目地址链接 ————————————————————————————————————————————————————————— 不知道大家有没有打过飞机,喜不喜欢打飞机。当我第一次接触这个东西的时候,我的内心是被震撼到的。第一次接触打飞机的时候作者本人是身心愉悦的,因为周边的朋友都在打飞机, 每

Python数据分析与挖掘

92讲视频课+16大项目实战+源码+¥800元课程礼包+讲师社群1V1答疑+社群闭门分享会=99元 &nbsp; 为什么学习数据分析? &nbsp; &nbsp; &nbsp; 人工智能、大数据时代有什么技能是可以运用在各种行业的?数据分析就是。 &nbsp; &nbsp; &nbsp; 从海量数据中获得别人看不见的信息,创业者可以通过数据分析来优化产品,营销人员可以通过数据分析改进营销策略,产品经理可以通过数据分析洞察用户习惯,金融从业者可以通过数据分析规避投资风险,程序员可以通过数据分析进一步挖掘出数据价值,它和编程一样,本质上也是一个工具,通过数据来对现实事物进行分析和识别的能力。不管你从事什么行业,掌握了数据分析能力,往往在其岗位上更有竞争力。 &nbsp;&nbsp; 本课程共包含五大模块: 一、先导篇: 通过分析数据分析师的一天,让学员了解全面了解成为一个数据分析师的所有必修功法,对数据分析师不在迷惑。 &nbsp; 二、基础篇: 围绕Python基础语法介绍、数据预处理、数据可视化以及数据分析与挖掘......这些核心技能模块展开,帮助你快速而全面的掌握和了解成为一个数据分析师的所有必修功法。 &nbsp; 三、数据采集篇: 通过网络爬虫实战解决数据分析的必经之路:数据从何来的问题,讲解常见的爬虫套路并利用三大实战帮助学员扎实数据采集能力,避免没有数据可分析的尴尬。 &nbsp; 四、分析工具篇: 讲解数据分析避不开的科学计算库Numpy、数据分析工具Pandas及常见可视化工具Matplotlib。 &nbsp; 五、算法篇: 算法是数据分析的精华,课程精选10大算法,包括分类、聚类、预测3大类型,每个算法都从原理和案例两个角度学习,让你不仅能用起来,了解原理,还能知道为什么这么做。

如何在虚拟机VM上使用串口

在系统内核开发中,经常会用到串口调试,利用VMware的Virtual Machine更是为调试系统内核如虎添翼。那么怎么搭建串口调试环境呢?因为最近工作涉及到这方面,利用强大的google搜索和自己

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:csdn590)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

C++语言基础视频教程

C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。 课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。

北京师范大学信息科学与技术学院笔试10复试真题

北京师范大学信息科学与技术学院笔试,可以更好的让你了解北师大该学院的复试内容,获得更好的成绩。

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

本课程适合CCNA或HCNA网络小白同志,高手请绕道,可以直接学习进价课程。通过本预科课程的学习,为学习网络工程师、思科CCNA、华为HCNA这些认证打下坚实的基础! 重要!思科认证2020年2月24日起,已启用新版认证和考试,包括题库都会更新,由于疫情原因,请关注官网和本地考点信息。题库网络上很容易下载到。

Python界面版学生管理系统

前不久上传了一个控制台版本的学生管理系统,这个是Python界面版学生管理系统,这个是使用pycharm开发的一个有界面的学生管理系统,基本的增删改查,里面又演示视频和完整代码,有需要的伙伴可以自行下

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

Tomcat服务器下载、安装、配置环境变量教程(超详细)

未经我的允许,请不要转载我的文章,在此郑重声明!!! 请先配置安装好Java的环境,若没有安装,请参照我博客上的步骤进行安装! 安装Java环境教程https://blog.csdn.net/qq_40881680/article/details/83585542 Tomcat部署Web项目(一)·内嵌https://blog.csdn.net/qq_40881680/article/d...

2019数学建模A题高压油管的压力控制 省一论文即代码

2019数学建模A题高压油管的压力控制省一完整论文即详细C++和Matlab代码,希望对同学们有所帮助

图书管理系统(Java + Mysql)我的第一个完全自己做的实训项目

图书管理系统 Java + MySQL 完整实训代码,MVC三层架构组织,包含所有用到的图片资源以及数据库文件,大三上学期实训,注释很详细,按照阿里巴巴Java编程规范编写

linux下利用/proc进行进程树的打印

在linux下利用c语言实现的进程树的打印,主要通过/proc下的目录中的进程文件,获取status中的进程信息内容,然后利用递归实现进程树的打印

微信小程序开发实战之番茄时钟开发

微信小程序番茄时钟视频教程,本课程将带着各位学员开发一个小程序初级实战类项目,针对只看过官方文档而又无从下手的开发者来说,可以作为一个较好的练手项目,对于有小程序开发经验的开发者而言,可以更好加深对小程序各类组件和API 的理解,为更深层次高难度的项目做铺垫。

[已解决]踩过的坑之mysql连接报“Communications link failure”错误

目录 前言 第一种方法: 第二种方法 第三种方法(适用于项目和数据库在同一台服务器) 第四种方法 第五种方法(项目和数据库不在同一台服务器) 总结 前言 先给大家简述一下我的坑吧,(我用的是mysql,至于oracle有没有这样的问题,有心的小伙伴们可以测试一下哈), 在自己做个javaweb测试项目的时候,因为买的是云服务器,所以数据库连接的是用ip地址,用IDE开发好...

人工智能-计算机视觉实战之路(必备算法+深度学习+项目实战)

系列课程主要分为3大阶段:(1)首先掌握计算机视觉必备算法原理,结合Opencv进行学习与练手,通过实际视项目进行案例应用展示。(2)进军当下最火的深度学习进行视觉任务实战,掌握深度学习中必备算法原理与网络模型架构。(3)结合经典深度学习框架与实战项目进行实战,基于真实数据集展开业务分析与建模实战。整体风格通俗易懂,项目驱动学习与就业面试。 建议同学们按照下列顺序来进行学习:1.Python入门视频课程 2.Opencv计算机视觉实战(Python版) 3.深度学习框架-PyTorch实战/人工智能框架实战精讲:Keras项目 4.Python-深度学习-物体检测实战 5.后续实战课程按照自己喜好选择就可以

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

Python数据分析师-实战系列

系列课程主要包括Python数据分析必备工具包,数据分析案例实战,核心算法实战与企业级数据分析与建模解决方案实战,建议大家按照系列课程阶段顺序进行学习。所有数据集均为企业收集的真实数据集,整体风格以实战为导向,通俗讲解Python数据分析核心技巧与实战解决方案。

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

2021考研数学张宇基础30讲.pdf

张宇:博士,全国著名考研数学辅导专家,教育部“国家精品课程建设骨干教师”,全国畅销书《张宇高等数学18讲》《张宇线性代数9讲》《张宇概率论与数理统计9讲》《张宇考研数学题源探析经典1000题》《张宇考

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

期末考试评分标准的数学模型

大学期末考试与高中的考试存在很大的不同之处,大学的期末考试成绩是主要分为两个部分:平时成绩和期末考试成绩。平时成绩和期末考试成绩总分一般为一百分,然而平时成绩与期末考试成绩所占的比例不同会导致出现不同

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

c语言项目开发实例

十个c语言案例 (1)贪吃蛇 (2)五子棋游戏 (3)电话薄管理系统 (4)计算器 (5)万年历 (6)电子表 (7)客户端和服务器通信 (8)潜艇大战游戏 (9)鼠标器程序 (10)手机通讯录系统

董付国老师Python全栈学习优惠套餐

购买套餐的朋友可以关注微信公众号“Python小屋”,上传付款截图,然后领取董老师任意图书1本。

2019全国大学生数学建模竞赛C题原版优秀论文

2019全国大学生数学建模竞赛C题原版优秀论文,PDF原版论文,不是图片合成的,是可编辑的文字版。共三篇。 C044.pdf C137.pdf C308.pdf

Git 实用技巧

这几年越来越多的开发团队使用了Git,掌握Git的使用已经越来越重要,已经是一个开发者必备的一项技能;但很多人在刚开始学习Git的时候会遇到很多疑问,比如之前使用过SVN的开发者想不通Git提交代码为什么需要先commit然后再去push,而不是一条命令一次性搞定; 更多的开发者对Git已经入门,不过在遇到一些代码冲突、需要恢复Git代码时候就不知所措,这个时候哪些对 Git掌握得比较好的少数人,就像团队中的神一样,在队友遇到 Git 相关的问题的时候用各种流利的操作来帮助队友于水火。 我去年刚加入新团队,发现一些同事对Git的常规操作没太大问题,但对Git的理解还是比较生疏,比如说分支和分支之间的关联关系、合并代码时候的冲突解决、提交代码前未拉取新代码导致冲突问题的处理等,我在协助处理这些问题的时候也记录各种问题的解决办法,希望整理后通过教程帮助到更多对Git操作进阶的开发者。 本期教程学习方法分为“掌握基础——稳步进阶——熟悉协作”三个层次。从掌握基础的 Git的推送和拉取开始,以案例进行演示,分析每一个步骤的操作方式和原理,从理解Git 工具的操作到学会代码存储结构、演示不同场景下Git遇到问题的不同处理方案。循序渐进让同学们掌握Git工具在团队协作中的整体协作流程。 在教程中会通过大量案例进行分析,案例会模拟在工作中遇到的问题,从最基础的代码提交和拉取、代码冲突解决、代码仓库的数据维护、Git服务端搭建等。为了让同学们容易理解,对Git简单易懂,文章中详细记录了详细的操作步骤,提供大量演示截图和解析。在教程的最后部分,会从提升团队整体效率的角度对Git工具进行讲解,包括规范操作、Gitlab的搭建、钩子事件的应用等。 为了让同学们可以利用碎片化时间来灵活学习,在教程文章中大程度降低了上下文的依赖,让大家可以在工作之余进行学习与实战,并同时掌握里面涉及的Git不常见操作的相关知识,理解Git工具在工作遇到的问题解决思路和方法,相信一定会对大家的前端技能进阶大有帮助。

相关热词 c#中如何设置提交按钮 c#帮助怎么用 c# 读取合并单元格的值 c#带阻程序 c# 替换span内容 c# rpc c#控制台点阵字输出 c#do while循环 c#调用dll多线程 c#找出两个集合不同的
立即提问